分数变焦(平滑变焦)在OL3

Fractional zoom (smooth zoom) in OL3

本文关键字:变焦 OL3 平滑      更新时间:2023-09-26

我想将我的Web-Mapping-ApplicationOL2升级到OL3,现在我被平滑缩放问题阻止了。在OL2中,我使用了map.fractionalZoom功能,因为我的应用程序使用单个Tile WMS,并且我有必要通过使用滑块或ZoomBox(在OL3中DragZoom)精确缩放到任何比例。

谁能帮助我,并显示如何获得相同的功能在OL3?

来自德国的感谢和最诚挚的问候

普t .

OpenLayers 3以相反的方式工作:它支持任何开箱即用的小数缩放级别,但它的控件和交互将其设置为整数缩放级别。这意味着您可以通过编程方式设置小数缩放级别:

map.getView().setZoom(9.3);
map.getView().fit(extent, size, {constrainResolution: false});

这也意味着您可以创建不将缩放级别约束为整数的自定义控件和交互。例如,如果您希望将视图与使用ol.interaction.DragBox创建的范围精确匹配,则您的自定义缩放框交互可能如下所示:

var zoomBox = new ol.interaction.DragBox();
zoomBox.on('boxend', function() {
  map.getView().fit(zoomBox.getGeometry(), map.getSize(),
      {constrainResolution: false});
});

更新:最近的OpenLayers版本(v3.20.0及以上)在使用滚轮或捏缩放时不再限制缩放级别。