Mapbox:使用fitBounds重新定心地图后缩小一级

时间:2018-07-31 21:55:41

标签: javascript mapbox mapbox-gl-js

我正在使用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); 

1 个答案:

答案 0 :(得分:2)

如果您要实现的只是向边界添加填充,则mapbox-gl在fitBounds中为此提供了一个选项:

map.fitBounds(bounds, {padding: 100}) // adds 100px padding to the bounds

以下是文档:https://www.mapbox.com/mapbox-gl-js/api#map#fitbounds