地图框:使用fitBounds后缩小一个级别重新居中地图



我使用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

最新更新