Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 地图框:使用fitBounds重新设置地图中心后缩小一层_Javascript_Mapbox_Mapbox Gl Js - Fatal编程技术网

Javascript 地图框:使用fitBounds重新设置地图中心后缩小一层

Javascript 地图框:使用fitBounds重新设置地图中心后缩小一层,javascript,mapbox,mapbox-gl-js,Javascript,Mapbox,Mapbox Gl Js,我正在使用Mapbox GL JS,并根据他们的商店定位器演示创建了一个动态商店定位器。我使用fitBounds在地图的初始显示中包含所有存储标记 问题是,它放大得太近,地图需要一些填充。所以,我试着把变焦缩小一级。问题是,当我获得缩放级别并调出一个时,地图会重新居中到地图的原始中心 我在下面的代码中尝试将中心重置为fitBounds中心,但它不起作用。知道我做错了什么吗 var bounds = new mapboxgl.LngLatBounds(); $(markers).each(func

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

以下是文档:

如果您只想在边界中添加填充,mapbox gl在
fitBounds
中为此提供了一个选项:

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

这是文档:

谢谢!这正是我所需要的!非常感谢。这正是我所需要的!