OpenLayers 按百分比增加或减少范围

OpenLayers increase or decrease extent by a percentage

我有一张地图,上面有地图项,当我缩放到这些地图项时,用户可以设置缩放缓冲区的首选项。

我不确定 OL 中是否有执行此操作的内置方法...我查看了文档但什么也没看到...不确定我是否错过了它?

zoomToSelectedFeatures() {
view.extent = MapOverlay.getSource().getExtent();
map.getView().fit(view.extent, MapValues.map.getSize());
}

想知道是否有办法插入一个数字,例如 20%,使缩放比例大 20%?

fit 方法有一个 padding 选项,但未以百分比表示,因此您需要根据地图大小计算填充。更简单的方法可能是通过转换为几何来缩放范围,因为 fit 可以采用范围或几何

geom = ol.geom.Polygon.fromExtent(view.extent)
geom.scale(1.2);
map.getView().fit(geom, {size: MapValues.map.getSize()});