Я использую обходной путь для mouseOver var (установленный взаимодействием pointMove или событием карты), чтобы определить, находится ли мышь над объектом, а затем проверить его в событиях щелчка карты.
например,
var mouseOver;
map.on('pointermove', function(evt) {
mouseOver = (map.getFeaturesAtPixel(evt.pixel).length > 0);
});
map.on('singleclick', function(evt) {
if (mouseOver()) { return; }
.....
.....
.....
.....
});
В более сложных случаях вам нужно было бы добавить / удалить указатель. Перемещать взаимодействие выбора для каждого добавляемого / удаляемого взаимодействия щелчка, которое ничего не делает, кроме set 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); });