Mapbox GL JS:使用地理位置控制控制最大缩放?

时间:2017-03-21 09:17:11

标签: mapbox mapbox-gl-js

我正在使用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);
})

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

2 个答案:

答案 0 :(得分:1)

Map#addControl返回Mapgeolocate event会在GeolocateControl上触发{{3}}。以下应该有效:

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

答案 1 :(得分:0)

尝试这种方式。平滑缩放到您的位置

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 
  });
});