我有以下代码,为 3.20 之前的 OpenLayers 编写:

fitViewToFeature: function (viewer, feature) {
    var pan = ol.animation.pan({
      source: viewer.olView.getCenter(),
      duration: 1000
    })

    var zoom = ol.animation.zoom({
      resolution: viewer.olView.getResolution(),
      duration: 1000
    })

    viewer.olMap.beforeRender(pan, zoom)

    viewer.olView.fit(feature.getGeometry(), viewer.olMap.getSize(), {
      padding: [ 100, 100, 100, 100 ],
      constrainResolution: false,
      maxZoom: 4
    })
}

我的问题是如何将此函数转换为 OpenLayers 3.20 中引入的新 view.animate() 语法?

或者,我应该打开 GitHub 问题并请求将新选项添加​​到 view.animate 吗?

最佳答案

您应该能够以更简单的方式实现相同的动画,使用 durationol.View#fit() 选项:

viewer.olView.fit(feature.getGeometry(), {
  duration: 1000
});

以上适用于 OpenLayers 4.x。

关于openlayers-3 - 在 OpenLayers 3.20+ 中使用 view.animate() 的 view.fit(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41190146/

10-10 22:18