如何在 Openlayers 8.2 中检测鼠标滚轮单击?

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

所以我构建了一个地图应用程序,我可以在地图上查看我的照片。我正在使用 OpenLayers 8.2 来显示地图。当用户单击地图上的缩略图以显示完整照片时,我创建了一个单击事件,如下所示:

map.on('singleclick', function(evt) {
    var feature = map.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
        return feature;
        });
    if (feature) {
        newLink = link.replace('%2Areplace%2Ame%2A', feature.get("seq"));
        window.location.href = newLink;
    }
});

但现在我想捕获鼠标中键(鼠标滚轮)单击,以便用户可以在新选项卡中打开照片。我似乎无法弄清楚它是如何工作的。我可以处理右键单击、触摸事件、双击,甚至滚动鼠标滚轮,但不能处理单击。

openlayers mouse
1个回答
0
投票

您可以在目标 html 元素上注册一个事件监听器,如下所示:

map.getTargetElement().addEventListener('mousedown', (event) => {
    if (event.button === 1) {
        const pixel = map.getEventPixel(event);
        const features = state.map.getFeaturesAtPixel(pixel);
        console.log('features:', features);
    }

    if (event.button === 0) {
        console.log('left');
    }

    if (event.button === 2) {
        console.log('right');
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.