javascript - 如何在OL3中动画后获得 'end'分辨率?

标签 javascript openlayers-3

OpenLayers 3.20 ,当 ol.View 上的动画正在进行时,change:resolution 事件会被多次触发。在该版本之前,它仅被触发一次。 change:center 也是如此。

我的问题是这样的:有没有办法知道动画何时开始(这将是我想要绑定(bind)某种事件监听器的钩子(Hook))并从那里获得动画结束时的分辨率?基本上,我想知道是否有可能在 3.20 之前获得以前的行为。

最佳答案

是的,如果您使用 ol.View#animate,有一种方法 - 在动画结束时使用回调:

map.getView().animate({
  center: ol.proj.fromLonLat([37.6178, 55.7517]),
  zoom: 5
}, animateCallback);

function animateCallback (complete) {
  if (complete) {
    console.log(map.getView().getResolution());
    console.log(map.getView().getZoom());
  }
}

https://jsfiddle.net/jonataswalker/jr0d7dLb/

关于javascript - 如何在OL3中动画后获得 'end'分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41263869/

相关文章:

javascript - "NetworkError: 405 Method Not Allowed"对谷歌联系人删除

javascript - 将文本标签添加到 Force directed Graph 中的 d3 节点并在悬停时调整大小

events - OpenLayers 3 捕捉瓷砖加载事件

javascript - 本地图平移或缩放时,OpenLayers 3 矢量图层会丢失样式

javascript - 不能将 openlayers-3 与 webpack 一起使用

javascript - Chart.js:水平堆积条形图 x 轴的最小值

javascript - 未选中特定复选框时, react 切换选择字段不会删除

javascript - 在 Openlayers 3 中只允许一个绘图功能

javascript - 我如何在 jquery 中使用 this 来调用元素

javascript - OpenLayers 3 和 XYZ 层