我正在尝试创建缓存机制,而不是携带整个 map 。
现在我使用:
getBounds()
并接收用户当前正在查看的区域中的所有点。
我想实现的是填充边界。
例如:
map.getBounds(50)
应该将用户当前正在查看X2的区域带到该区域,或者可能将缩放级别降低一个区域..但不会打扰用户。
目前fitBounds (JSFiddle Demo Here)所做的或多或少只是导致更改用户 View 的原因:( ..我也尝试从自身的函数(fitBounds)获取界限,但它输出的是中心和缩放范围而不是界限(并且我没有成功得出结果从他们正确的界限)
最佳答案
您是否尝试过从pad
获得的L.LatLngBounds
上的 map.getBounds()
method?它专门用于增加某些范围的大小。
例如,如果要在每个方向上将边界的大小增加1个视口(viewport),则可以执行以下操作:
var newBounds = map.getBounds().pad(1)
现在,如果您想将边界面积加倍(大约不考虑投影),则必须将每个轴的总长度增加sqrt(2),因此将每个方向的边界增加sqrt(2)/2:
var doubleAreaBounds = map.getBounds().pad(Math.sqrt(2) / 2)