定位+点击改变覆盖物

地图定位点击改变覆盖物

具体实现

    <button @click="ready">我的位置</button>
    <div id="allmap"></div>

记得在js里引入import BMap from 'BMap';
也可以引入外部图片import imgIcon from '../assets/img/icon/map_icon.png';

    ready(){
      let that=this;
      let geolocation = new BMap.Geolocation();
      geolocation.getCurrentPosition(function(r){
        // 获取当前坐标
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
          // 创建地图
          let map = new BMap.Map("allmap");
          let point = new BMap.Point(r.point);
          map.centerAndZoom(point,15);
          map.enableScrollWheelZoom(true);//开启滚动
        
          // 创建覆盖物
          var mk = new BMap.Marker(r.point); // 覆盖物的位置,在定位处
          let icon = new BMap.Icon(imgIcon,new BMap.Size(20,22)); // 覆盖物的大小
          map.addOverlay(mk); //在地图上添加覆盖物
          map.panTo(r.point);

          //地图监听事件
          map.addEventListener('click', function (e) {
            map.removeOverlay(mk); // 移除定位的红色覆盖物
            mk = new BMap.Marker(e.point,{icon:icon}); // 在鼠标点击的位置创建新的覆盖物
            map.addOverlay(mk); // 在地图上添加覆盖物
          });
        }else {alert('failed'+this.getStatus());}
      });
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容