与填充的传单边界

时间:2015-12-07 15:48:59

标签: leaflet

我正在尝试创建缓存机制而不是整个地图。 现在我使用:  getBounds()并获得用户当前正在查看的区域中的所有积分。

我想要实现的是填充边界。 例如:

map.getBounds(50)

应该带来用户当前正在查看X2区域的界限..或者可能是一个缩放级别较低的区域..但不会打断用户。

目前fitBounds (JSFiddle Demo Here)或多或少会导致更改用户的视图:( ..我也尝试从函数中获取边界(fitBounds)但它输出中心和缩放没有界限(我没有成功地从他们那里获得正确的界限)

1 个答案:

答案 0 :(得分:6)

您是否尝试过从L.LatLngBounds获得的map.getBounds()上的pad method?它专门用于增加某些边界的大小。

  

返回通过在每个方向上将当前边界扩展给定百分比而创建的更大边界。

例如,如果你想在每个方向上增加1个视口的边界大小,你可以这样做:

var newBounds = map.getBounds().pad(1)

现在,如果你想加倍边界的区域(大约不考虑投影),你必须增加每个轴的长度。 sqrt(2),因此增加每个方向的界限sqrt(2)/ 2:

var doubleAreaBounds = map.getBounds().pad(Math.sqrt(2) / 2)