Javascript 如何防止GeolocateControl缩小
我正在地图盒地图中添加GeolocateControl。它工作正常并显示我的当前位置。然而,它放大了太多。默认情况下,我的地图缩放为10。但当我单击GeolocateControl时,它将移动到新的目的地并缩小。我尝试添加缩放:10,但没有运气Javascript 如何防止GeolocateControl缩小,javascript,mapbox-gl-js,Javascript,Mapbox Gl Js,我正在地图盒地图中添加GeolocateControl。它工作正常并显示我的当前位置。然而,它放大了太多。默认情况下,我的地图缩放为10。但当我单击GeolocateControl时,它将移动到新的目的地并缩小。我尝试添加缩放:10,但没有运气 map.addControl( new mapboxgl.GeolocateControl({ zoom: 10, positionOptions: { enableHighAccuracy: true },
map.addControl(
new mapboxgl.GeolocateControl({
zoom: 10,
positionOptions: {
enableHighAccuracy: true
},
trackUserLocation: true,
})
);
按照文档进行操作有点复杂,但基本上不是直接在您提供的对象上执行
zoom
,而是在名为fitbundsoptions
的对象上执行:
map.addControl(
new mapboxgl.GeolocateControl({
fitBoundsOptions: {
zoom: 10,
},
positionOptions: {
enableHighAccuracy: true
},
trackUserLocation: true,
})
);
为了补充这个答案,值得注意的是,根据GL JS API参考中的GeolocateControl文档,“应用的缩放级别将取决于设备提供的地理位置的准确性。”这解释了为什么单击控件会导致地图大量“缩小”。通过在fitBoundsOptions中指定缩放,可以解决此问题。要添加到Adriana的评论中,有很好的理由说明默认设置是这样的,因为如果设备仅报告城市范围内的准确度,则将其放大到城市级别之外会产生误导。