我正在使用Mapbox GL JS,并根据他们的商店定位器演示创建了一个动态商店定位器。我正在使用fitBounds在地图的初始显示中包括所有商店标记。
问题是,它放大得太近,地图需要一些填充。因此,我正在尝试退出缩放一级。问题是,当我获得缩放级别并返回一个缩放级别时,地图将重新定位到地图的原始中心。
我在下面包含了尝试将中心重置为fitBounds中心的代码,但无法正常工作。知道我在做什么错吗?
var bounds = new mapboxgl.LngLatBounds();
$(markers).each(function() {
var features = $(this);
bounds.extend(features[0].geometry.coordinates);
});
map.fitBounds(bounds);
var mapLat = map.getBounds().getCenter().lat;
var mapLong = map.getBounds().getCenter().long;
map.setCenter = (mapLat, mapLong);
var mapZoom = map.getZoom();
newZoom = mapZoom - 1;
map.setZoom(newZoom);
最佳答案
如果您要实现的只是向边界添加填充,则mapbox-gl在fitBounds
中为此提供了一个选项:
map.fitBounds(bounds, {padding: 100}) // adds 100px padding to the bounds
这里是文档:https://www.mapbox.com/mapbox-gl-js/api#map#fitbounds