OpenLayers 3+中缺乏原生上下文菜单处理?

问题描述 投票:0回答:1

作为一个正在努力将一个OL2映射应用升级到OL45的负担沉重的程序员之一,我一直很感谢stackoverflow的贡献者,他们的贴子回答解决了我的大部分问题。还有一个问题:上下文菜单的处理。

我在OL4+中找不到任何处理上下文菜单右键点击的方法。然而,我已经成功地使用了jonatawalker的优秀附加组件。此处. 这个资源有点矫枉过正(基本上我只是想检测到一个右键点击并采取行动),在可能的情况下,我更愿意坚持标准。我是否在OL库中遗漏了什么?

javascript event-handling contextmenu openlayers
1个回答
0
投票

在地图画布上设置一个监听器对5版和更早的版本有效,到6.2版使用controls容器也可以,所以这段代码对两个版本都是兼容的。

var canvas = map.getViewport().getElementsByTagName("canvas")[0] ||
             map.getViewport().getElementsByClassName("ol-overlaycontainer-stopevent")[0];

canvas.addEventListener('contextmenu', function (e) {
    ...
    ...
});

在6.3版本中,这是不工作的,似乎是最上面的画布是响应的,但画布会根据图层可见性和视图旋转而改变。

© www.soinside.com 2019 - 2024. All rights reserved.