【问题标题】:Mapbox GL JS: Control max zoom with geolocation control?Mapbox GL JS:使用地理位置控制控制最大缩放?
【发布时间】:2017-03-21 09:17:10
【问题描述】:

我正在使用 Mapbox GL JS v0.32.1,我的地图上有 a geolocation control

我想让用户地理定位时的最大缩放为 8,以便地图缩放到用户的大致位置,而不是街道位置。

根据the documentation 应该有一个geolocate 事件可用,但这对我不起作用:

var geoLocate = map.addControl(new mapboxgl.GeolocateControl());
geoLocate.on('geolocate', function(e) {
    console.log('geolocated');
    map.setZoom(8);
})

地理定位(至少在 Chrome 中)仍会缩放到可用的最大缩放级别,并且在发生这种情况时我看不到控制台日志消息。

【问题讨论】:

    标签: mapbox mapbox-gl-js


    【解决方案1】:

    Map#addControl 返回Mapgeolocate eventGeolocateControl 上触发。以下应该有效:

    var geoLocate = new mapboxgl.GeolocateControl();
    map.addControl(geoLocate);
    geoLocate.on('geolocate', function(e) {
        console.log('geolocated');
        map.setZoom(8);
    });
    

    【讨论】:

    • 啊,我明白了!谢谢。
    【解决方案2】:

    试试这个方法。平滑缩放到您的位置

    var geoLocate = new mapboxgl.GeolocateControl();
    
    map.addControl(geoLocate);
    
    geoLocate.on('geolocate', function(e) {
       map.flyTo({
        center:[e.coords.longitude, e.coords.latitude], 
        zoom:16 //set zoom 
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      相关资源
      最近更新 更多