【问题标题】:How to dispatch events from an OpenLayers overlay to the map如何将事件从 OpenLayers 叠加层分派到地图
【发布时间】:2020-02-14 07:34:48
【问题描述】:
在 OpenLayers 中向地图添加叠加元素时,我可以将叠加层的 stopEvent 属性设置为 true。这使我能够处理覆盖元素上的不同事件,例如鼠标移动、点击等。
但我也希望一些事件不要停止,尤其是 wheel 事件。我希望传播此事件,以便即使鼠标悬停在叠加层上,地图的缩放行为也能正常工作。
我怎样才能做到这一点?我可以在叠加层中拦截 wheel 事件,如何将其发送到地图元素或触发 noemal 滚动行为所需的任何地方?
【问题讨论】:
标签:
javascript
openlayers
【解决方案1】:
对于覆盖目标 html 元素,您可以使用指向无的指针事件。
CSS
#marker {
pointer-events: none;
}
JS
new Overlayer({
element: document.getElementById('marker')
})
【解决方案2】:
仅作记录:
当我将它用于 JavaFX 集成 (mapjfx) 时,我捕获了 wheel 事件,将其发送到集成的 Java 端,并在那里增加/降低缩放级别并将其发送回 Javascript。所以我不用担心在Javascript层处理它。