mapbox中添加鹰眼

 main.js

import 'mapbox-gl/dist/mapbox-gl.css'
import mapBoxGl from 'mapbox-gl'
Vue.prototype.$mapboxgl = mapBoxGl

html:

<div id="overviewMap" class="overviewMap"></div>

js:

this.$mapboxgl.accessToken ='pk.eyJ1IjoibGlqaWFuZ2ppYW5namlhbmciLCJhIjoiY2s2b2czbmltMG14cDNkbXpldjhkd3c3ZiJ9.zBaMzJo2X2UVPyFTtd5hEQ'
window.ovmap = new this.$mapboxgl.Map({
        container: "overviewMap",
        style: "mapbox://styles/mapbox/streets-v11",
        center: 5,
        zoom: 2
      });
      var map_x; //地图的x坐标
      var map_y; //地图的y坐标
      var overview_x; //鹰眼的x坐标
      var overview_y; //鹰眼的y坐标
      var map_zoom; //地图的比例尺
      var overview_zoom; //鹰眼的比例尺

      // 拖拽
      function mapdrag() {
        map_x = map.getCenter().lng;
        map_y = map.getCenter().lat;
        ovmap.setCenter([map_x, map_y]);
      }
      function overviewdrag() {
        overview_x = ovmap.getCenter().lng;
        overview_y = ovmap.getCenter().lat;
        map.setCenter([overview_x, overview_y]);
      }
      //   放大缩小
      function mapzoom() {
        map_zoom = map.getZoom();
        ovmap.setZoom(map_zoom - 4);
      }
      function overviewzoom() {
        overview_zoom = ovmap.getZoom();
        map.setZoom(overview_zoom + 4);
      }

      map.on("drag", mapdrag);
      map.on("zoom", mapzoom);
      let overview = document.getElementById("overviewMap");
      overview.addEventListener("mouseover", function() {
        //移除地图的拖拽监听
        map.off("drag", mapdrag);
        map.off("zoom", mapzoom);
        //添加鹰眼的拖拽监听
        ovmap.on("drag", overviewdrag);
        ovmap.on("zoom", overviewzoom);
      });
      overview.addEventListener("mouseout", function() {
        //添加地图的拖拽监听
        map.on("drag", mapdrag);
        map.on("zoom", mapzoom);
        //移除鹰眼的拖拽监听
        ovmap.off("drag", overviewdrag);
        ovmap.off("zoom", overviewzoom);
      });

css:

 #overviewMap {
    width: 160px;
    height: 160px;
    position: absolute;
    right: 10px;
    top: 200px;
    border: 2px solid gray;
  }
  .mapboxgl-ctrl-attrib {
    display: none;
  }

效果图:

 

 

参考:https://blog.csdn.net/smss007/article/details/104015410

鹰眼控件github:https://github.com/aesqe/mapboxgl-minimap

在线演示 :http://aesqe.github.io/mapboxgl-minimap/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值