vue2: 百度地图基础

删除makerb标注的添加和删除

   // 创建自定义图标 添加标注
  var myIcon = new BMapGL.Icon(require('@/assets/map/position.png'), new BMapGL.Size(105, 95));
      var adds = [
          new BMapGL.Point(115.799145,28.628876),
          new BMapGL.Point(115.805475,28.614241),
          new BMapGL.Point(115.80056 ,28.60097),
          new BMapGL.Point(115.81203 ,28.59490),
          new BMapGL.Point(115.792634,28.583925),
          new BMapGL.Point(115.810247,28.588456),
          new BMapGL.Point(115.78419 ,28.57704),
          new BMapGL.Point( 115.82234 ,28.60700),
      ];
      for(var i = 0; i<adds.length; i++){
          var marker = new BMapGL.Marker(adds[i],{icon: myIcon});
          var label = new BMapGL.Label(this.mapData[i].name, {offset:new BMapGL.Size(-32,-40)}) 
          label.setStyle({ // 设置label的样式
              color: '#fff',
              fontSize: '12px',
              background: 0,
              border: 0
          })
          marker.setLabel(label);
          this.map.addOverlay(marker);
          marker.customData = {
              id: i
          }
          marker.addEventListener('click', function (e) {
            let id = e.target.customData.id
            console.log('点击图标')
            console.log(id)
            that.$router.push('/home')
            sessionStorage.setItem('mapIndex', id)
          });
      }
    marker.setPosition(point)//添加标注
    
    //删除标注文档上注明了是removeOverlay()这个方法,具体使用如下
    marker.id = data[0].id//给marker添加id对应数组里的id(非必要不要赋值id,不要这么写)
    const allOverlays = map.getOverlays()//返回地图上所有的覆盖物
    //循环找到数组里面id和返回覆盖物相同的
    for (let i = 0; i < allOverlays.length; i++) {
      if (allOverlays[i].id == data[0].id) { //data[0].id即是你要删除标注的id
        map.removeOverlay(allOverlays[i])
      }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值