我正在寻找用于地图移动/地图平移的 OpenLayer 3 地图事件,例如:
map.on('move', function(){
...
}
有谁知道如何实施?
该moveend
事件可能是您要搜索的事件 - 它检测所做的任何移动,即使是那些未通过拖动调用的移动。
map.on('moveend', function (e) {
console.log("moved");
});
见http://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html
更新:
这些事件在最近的版本中不再存在。请参阅更新的答案以获取最新信息。
您要查找的事件的名称是drag
和/或dragend
(不过,取决于属性名称可能是一个更好的主意:ol.MapBrowserEvent.EventType.DRAG
但它在演示页面上不起作用):
map.on('drag', function() {
console.log('Dragging...');
});
map.on('dragend', function() {
console.log('Dragging ended.');
});
通过查看内部进行逆向工程mapbrowserevent.js
,文档明确提到尚未记录事件。
如果您使用脚本移动地图,则 MoveEnd 触发器。我在 OpenLayers 6 中使用过它:
map.on('pointerdrag', function (event) {
is_map_center = false;
})
高频gl!
我相信此功能存在于地图视图中的两个功能中,而不是地图本身。您可以通过监听change:center
事件来监控 View 的 center 属性。getInteracting()
如果发生交互(缩放或平移),ol.View 中还有一个方法将返回布尔值。
https://openlayers.org/en/v4.6.5/apidoc/ol.View.html#getInteracting