JS-百度地图API实时标注中心点

经理提的要求就是滑动地图或者点击地图的一个地方,中心点标注会跟着变化,下面也会更新周边地址

这里只说滑动部分

其实就是添加dragend事件,百度地图文档里面有

var v = this
this.map = new BMap.Map("allmap", {minZoom: 4, maxZoom: 20});    // 创建Map实例
this.map.centerAndZoom(new BMap.Point(114.372024, 30.544483), 16);  // 初始化地图,设置中心点坐标和地图缩放级别
//添加事件
this.map.addEventListener('dragend',function () {
  console.log("滑动");
  console.log(v.map.getCenter().lng)
  var geoc = new BMap.Geocoder();
  geoc.getLocation(new BMap.Point(v.map.getCenter().lng, v.map.getCenter().lat), (rs) => {
    console.log(rs);
    v.onGetAddress(rs)
  })
})

onGetAddress方法是用来获取一个地址的周边地址数组的,就不放上来了

//标注

this.map.clearOverlays();
if(address.surroundingPois.length == 0) {           //这个获取的周边地址数组长度为0,就获取到整个视图的中心点,标注在当前视图的中心点
  var points=new BMap.Point(this.map.getBounds().getCenter().lng,this.map.getBounds().getCenter().lat)
  var marker = new BMap.Marker(points);
}
else {                                              //这个是获取到的地址,标注在这里,pointLat和pointLng是之前命名错误
  var point =(this.pickerData[0])[0]
  var marker = new BMap.Marker(new BMap.Point(point.pointLat, point.pointLng));
}

  // 标注
  this.map.addOverlay(marker);                // 将标注添加到地图中
  for (var i = 0; i < this.$refs.wrap.children.length; i++) {
    this.$refs.wrap.children[i].children[0].className = "content"
  }
}

 

今天改了改代码,已完美实现需求惹!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值