我正在使用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中)仍会缩放到可用的最大缩放级别,并且在发生时我看不到控制台日志消息。
答案 0 :(得分:1)
Map#addControl
返回Map
。 geolocate
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
});
});