我想将我的Web-Mapping-ApplicationOL2升级到OL3,现在我因平滑缩放的问题而停下来。在OL2中,我使用了map.fractionalZoom功能,因为我的应用程序使用单个Tile WMS,并且必须使用滑块或ZoomBox(OL3中的DragZoom)将其精确缩放到任意比例。

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

感谢和来自德国的问候

叶夫根尼(Evgeni 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及更高版本)不再限制缩放级别。

10-07 13:45
查看更多