vue-baidu-map百度地图在设置了初始化center之后,浏览地图,查询地点,一键窗口返回初始center位置

[功能请求] 在设置了初始化center之后,浏览地图,一键返回center位置

功能描述

地图初始化时设置了初始的center位置,随后在地图中会进行一些地点查看,或者查询地点等地图其他浏览操作,此时可能就会导致地图浏览窗口已经距离原有center位置较远,所以需要窗口一键返回到初始center位置

用法示例

我现在考虑的实现方法是ready后将map赋值给变量,然后用map对应的setCenter和panTo两个方法去实现窗口回到原始位置,但是没有效果,我的代码如下:

<baidu-map
            class="baidumap"
            :scroll-wheel-zoom="true"
            :center="center"
            :zoom="zoom"
            @ready="handleMap"
          >
</baidu-map>

data() {
  return {
    map: null,
    center: {
        lng: this.$route.query.xy.split(',')[0],
        lat: this.$route.query.xy.split(',')[1]
      },
  }
}


handleMap({ Bmap, map }) {
      this.map = map
},

setSourceCenter() {
      console.log('map', this.map)
      this.map.setCenter({
        lng: 0,
        lat: 0
      })
      this.map.panTo({
        lng: 0,
        lat: 0
      })
    }

setSourceCenter()这个方法是在页面上自定义的一个按钮控件,实现点击一键返回到初始center窗口方法,现在是点击没有效果。
请问是我的实现方式不对,或者有没有什么方式能够实现我这个需求?

阅读 8.7k
1 个回答

页面初始化的时候要将百度地图的对象赋值给全局变量:

handleMap({ BMap, map }) {
  this.map = map
  this.BMap = BMap
}

拿到这个BMap之后就可以使用百度地图的那些原生API了,定位到指定坐标的方法是:

setSourceCenter() {
  this.map.setZoom(14)
  const point = new this.BMap.Point(this.center.lng, this.center.lat)
  this.map.panTo(point)
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题