我正在使用Mapbox GL JS v0.32.1,我的地图上有一个地理位置控件。
我想使用户地理定位时的最大缩放比例为 8,以便地图缩放到用户的大致位置,而不是街道位置。
根据文档,应该有一个可用的geolocate
事件,但这对我不起作用:
var geoLocate = map.addControl(new mapboxgl.GeolocateControl());
geoLocate.on('geolocate', function(e) {
console.log('geolocated');
map.setZoom(8);
})
地理定位(至少在 Chrome 中(仍然会缩放到可用的最大缩放级别,并且发生时我没有看到控制台日志消息。
Map#addControl
返回Map
。geolocate
事件在 GeolocateControl
上触发。以下方法应该有效:
var geoLocate = new mapboxgl.GeolocateControl();
map.addControl(geoLocate);
geoLocate.on('geolocate', function(e) {
console.log('geolocated');
map.setZoom(8);
});
试试这种方式。 平滑缩放到您的位置
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
});
});