我正在尝试在传单地图中设置fitBounds选项,如下所示:
var bounds = new L.LatLngBounds([[Math.max(lat, borneLat), Math.max(lng, borneLng)], [Math.min(lat, borneLat), Math.min(lng, borneLng)]]);
map.fitBounds(bounds, { padding: [20, 20] });
但是这似乎没有添加任何填充?至少地图“缩放级别”不会改变,并且它总是显示边缘中的两个点(即一个位于最右上方,另一个位于最左下方)。对于一些标记集,它工作正常,缩放在一个不错的水平,你可以很好地看到一切。然而,当物品彼此非常接近时,似乎它放大了一点,除非我能用一些“填充物”。
另外我不确定这样的边界是否正确?我应该只使用:
var bounds = [[Math.max(lat, borneLat), Math.max(lng, borneLng)], [Math.min(lat, borneLat), Math.min(lng, borneLng)]];
答案 0 :(得分:45)
map.fitBounds(bounds, {padding: []})
应该有效。我建议你改变填充到例如。 [50, 50]
,也许你的填充值太小。
查看此JSFiddle example。
答案 1 :(得分:7)
我遇到了这个问题。据我所知,填充由缩放控制。在我的示例中,10以下的所有填充设置都没有区别。一旦填充变为10,地图就会缩小一级并且有填充。增加填充值没有任何影响,直到达到另一个缩小级别为止。
答案 2 :(得分:2)
FWI,您还可以像这样设置地图的最大缩放级别:
var map = L.mapbox.map('map', 'mapbox.emerald', {
maxZoom: 16
});
通过这种方式,您可以避免地图放大过多,以防标记距离太近。
答案 3 :(得分:0)
默认情况下,传单仅在整数值缩放级别之间缩放。较早版本1.0.0的“ zoomSnap”参数提供了“分数缩放”:
var map = L.map('map', {
zoomSnap: 0.1
});
这将使较小的填充值可见,但也会影响scrollWheelZoom行为。