Leaflet.js收缩getBounds()

时间:2015-10-23 14:27:43

标签: leaflet gis

Leafletjs有一个函数pad(x)用于增加latLng界限。我该如何缩小它?我试过把负数放在那里但收效甚微。

我基本上试图查看标记是否在当前视图中,如果不在该标记的中心。但是一些标记可以直接绘制在视图的边缘,并且仍然可以在视图中分类。我正在尝试在当前视口边界添加内部填充以避免这种情况。

if(!map.getBounds().pad(-1.5).contains(marker.getLatLng()))

2 个答案:

答案 0 :(得分:1)

您可以使用paddingTopLeft paddingBottomRight方法的paddingL.MapfitBounds选项:

  

设置在将视图设置为适合边界时不应考虑的地图容器左上角的填充量。如果您在地图上有一些控件叠加层(如侧边栏)并且您不希望它们遮挡您要缩放的对象,则非常有用。

http://leafletjs.com/reference.html#map-paddingtopleft

map.fitBounds(layer, {'padding': [n, n]})

答案 1 :(得分:0)

pad()的负值范围是0到-0.5。

https://github.com/Leaflet/Leaflet/issues/5741

编辑:链接基本上表明pad的比率为1而不是典型的百分比值。因此,要将边界减少50%(在视觉上使其为0,因为左边界将在50%到中间,而右边界也将在50%到中间等),参数值将是pad(-0.5)NOT pad(-50)

增加正比率。