【发布时间】:2015-08-08 16:48:45
【问题描述】:
OpenLayers3 API 有一个 map.on("moveend"),但是我找不到 movestart。有谁知道我怎么能做到这一点?有没有等价的事件?
OpenLayers 2 在地图上有一个movestart 事件。我在 OpenLayers3 中寻找一个完全平行的地方
这是一个基本的jsFiddle。如果有人想玩。我确实在那里添加了一个movestart 事件,以显示我想要的,但我认为它实际上并不存在。
用例!有人可能会问:我在几乎全屏信息窗口的地图上停靠。用户可以从信息窗口切换到下一个标记。我将窗口设置为半透明以显示在下方平移的地图,以便用户了解下一个位置的上下文。这项工作在带有movestart 和moveend 事件的OpenLayers2 中非常棒。但是在新的OL3版本的地图中,我无法获得movestart事件。
更新:我确实自己回答了这个问题,但如果有人想提出更好的解决方案,我仍然会提供赏金。
【问题讨论】:
-
你自己的解决方案有什么问题?
-
代码有异味。如果支持回调,这可能会非常简单。在 OL3 库中注入此类回调的任何简单方法都是不错的答案。要么,要么我想我只是在这里寻找一些不同的观点。
-
我猜你需要使用
precompose事件。见我的 jsFiddle:jsfiddle.net/j2cP4/116 -
你不能假装把它当作画布来检测mousedown事件吗?像这样? (检查控制台):jsfiddle.net/j2cP4/117
-
@GuyT,不能使用
precompose,因为它不是专门针对移动操作的。它会被任何类型的地图渲染触发,例如。层变化。
标签: javascript gis openlayers-3