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

OpenLayers按百分比增加或减少范围,openlayers,openlayers-5,angular-openlayers,openlayers-6,Openlayers,Openlayers 5,Angular Openlayers,Openlayers 6,我有一张地图,上面有一些特征,当我缩放到这些特征时,用户可以设置缩放缓冲区的首选项 我不确定在OL中是否有一种内置的方法来实现这一点……我已经查看了文档,但什么都看不到……不确定我是否错过了它 zoomToSelectedFeatures() { view.extent = MapOverlay.getSource().getExtent(); map.getView().fit(view.extent, MapValues.map.getSize()); } 想知道是否有一种方法可以插入一个

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

我不确定在OL中是否有一种内置的方法来实现这一点……我已经查看了文档,但什么都看不到……不确定我是否错过了它

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

想知道是否有一种方法可以插入一个数字,比如说20%,使缩放放大20%?

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

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

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

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

谢谢你的回答迈克…1.2代表什么?缩放几何体1.2倍,即100%+20%谢谢你的回答迈克…1.2代表什么?缩放几何体1.2倍,即100%+20%