如何在不移动地图的情况下确定地图将移动多少



我有一个应用程序,标记定期移动,我调用

map.getView().fit(extent, {size: map.getSize(), padding: [150,150,150,150], duration: 6000});

调整地图大小以缩放到显示所有活动标记所需的范围。

当有少量标记移动了一小段距离时,这会导致地图随机向左/向右移动几个像素,而实际上它没有显示任何附加信息(标记(

有没有可能(或者最好如何(提前确定这会引起什么移动,或者有没有一种简单的方法来确定屏幕上的所有标记是否都在中心点的X距离内,因此根本不移动。

我知道我可以使用onScreen(),但是如果标记正好在边上,那么这将返回true,我宁愿在这种情况下调整的大小。

那么我要寻找的逻辑基本上是";如果所有标记都在所显示区域的中心75%左右;

如果可见地图(基于当前中心(,您可以计算75%的范围,并且只有在新范围未完全包含在中时才移动

var size = map.getSize();
var visible75pc = map.getView().calculateExtent([size[0] * 0.75, size[1] * 0.75]);
if (!ol.extent.containsExtent(visible75pc, extent) {
map.getView().fit(extent, options);
}

最新更新