我正在寻找一种使PointerInteraction / DrawInteraction的“ stopDown”功能可用于Select交互的方法。 我在地图上有一个附加的点击侦听器,当将选择交互功能添加到地图时,该监听器不会触发。
我试图在单击/指针向下/指针向上时停止事件传播,但似乎停止了任何地图平移的工作。
如何完成Select交互的“ stopDown”?
答案 0 :(得分:0)
我使用mouseOver变体(由pointMove交互或地图事件设置)的变通办法来确定鼠标是否位于要素上方,然后在地图单击事件中对其进行测试。
例如
var mouseOver;
map.on('pointermove', function(evt) {
mouseOver = (map.getFeaturesAtPixel(evt.pixel).length > 0);
});
map.on('singleclick', function(evt) {
if (mouseOver()) { return; }
.....
.....
.....
.....
});
在更复杂的情况下,您需要添加/删除指针为添加/删除的每次点击选择互动移动选择互动,除了设置mouseOver之外什么也没做
var interHover = new ol.interaction.Select({
condition: ol.events.condition.pointerMove,
style: function(feature) {
// return the unselected style
},
filter: // same as click select interaction
});
interHover.on( "select", function(evt) { mouseOver = (evt.selected.length > 0); });