3

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

map.on('move', function(){
  ...
}

有谁知道如何实施?

4

4 回答 4

11

moveend事件可能是您要搜索的事件 - 它检测所做的任何移动,即使是那些未通过拖动调用的移动。

map.on('moveend', function (e) {
    console.log("moved");
});

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

于 2015-04-17T21:05:34.060 回答
5

更新:

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


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

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

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

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

于 2013-08-12T13:27:53.293 回答
1

如果您使用脚本移动地图,则 MoveEnd 触发器。我在 OpenLayers 6 中使用过它:

map.on('pointerdrag', function (event) {
    is_map_center = false;
})

高频gl!

于 2019-12-05T15:57:38.470 回答
0

我相信此功能存在于地图视图中的两个功能中,而不是地图本身。您可以通过监听change:center事件来监控 View 的 center 属性。getInteracting()如果发生交互(缩放或平移),ol.View 中还有一个方法将返回布尔值。

https://openlayers.org/en/v4.6.5/apidoc/ol.View.html#getInteracting

于 2018-05-02T01:09:10.323 回答