如何在OpenLayers 3中注册地图移动/地图平移事件

use*_*928 2 openlayers-3

我正在寻找地图移动/地图平移的OpenLayer 3地图事件,如:

map.on('move', function(){
  ...
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何实施?

Sim*_*Zyx 11

moveend事件可能是您搜索的事件 - 它会检测所做的任何移动,甚至是那些未通过拖动调用的移动.

map.on('moveend', function (e) {
    console.log("moved");
});
Run Code Online (Sandbox Code Playgroud)

请参见http://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html


kry*_*ger 5

更新:

这些事件在最新版本中不再存在。请参考最新答案以获取最新信息。


您正在寻找的事件的名称是(drag和/或)dragend(尽管取决于属性名称可能是一个更好的主意:ol.MapBrowserEvent.EventType.DRAG但是在演示页面上不起作用):

map.on('drag', function() {
  console.log('Dragging...');
});

map.on('dragend', function() {
  console.log('Dragging ended.');
});
Run Code Online (Sandbox Code Playgroud)

通过内部查看进行反向工程mapbrowserevent.js,该文档明确提到尚未记录事件。

  • 这些事件不再存在。``拖动''事件被重命名为``指针拖动'',并且``拖动''不再存在,但是现在有一个``移动''事件,这是相似的。 (6认同)