Выберите взаимодействие stopDown - PullRequest
0 голосов
/ 29 ноября 2018

Я ищу способ работы функции stopDown PointerInteraction / DrawInteraction для взаимодействия Select.У меня есть прикрепленный прослушиватель кликов на карте, который не должен запускаться, когда на карту добавлено взаимодействие выбора.

Я пытался остановить распространение событий при нажатии / указателе вниз / указателе, но, похоже, он останавливает любоепанорамирование карты с работы.

Как выполнить 'stopDown' для выбора взаимодействия?

1 Ответ

0 голосов
/ 29 ноября 2018

Я использую обходной путь для 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); });
...