Добавление всплывающих окон при наведении курсора на пользовательские маркеры с помощью Mapbox gl js

Теперь, видя ответы выше, все знают, что мы не можем переопределять статические методы, но не следует неправильно понимать концепцию доступа к статическим методам из подкласса.

Мы можем получить доступ к статическим методам супер класс с подклассом, если этот статический метод не был скрыт новым статическим методом, определенным в подклассе.

Пример, см. ниже код: -

public class StaticMethodsHiding {
    public static void main(String[] args) {
        SubClass.hello();
    }
}


class SuperClass {
    static void hello(){
        System.out.println("SuperClass saying Hello");
    }
}


class SubClass extends SuperClass {
    // static void hello() {
    // System.out.println("SubClass Hello");
    // }
}

Выход: -

SuperClass saying Hello

См. Java oracle docs и поиск Что вы можете сделать в подклассе для получения дополнительной информации о скрытие статических методов в подклассе.

Спасибо

0
задан Anton 18 January 2019 в 13:45
поделиться

1 ответ

mapboxgl.Marker реализованы в виде простых HTML <div> элементов. Вы можете присоединить к ним стандартный прослушиватель событий и вручную переключать всплывающее окно:

const marker = new mapboxgl.Marker({/* options */});
const markerDiv = marker.getElement();

markerDiv.addEventListener('mouseenter', () => marker.togglePopup());
markerDiv.addEventListener('mouseleave', () => marker.togglePopup());

См. Документы: https://docs.mapbox.com/mapbox-gl-js/api/#marker# getelement

РЕДАКТИРОВАТЬ: Предотвращение открытия всплывающего окна при щелчке

Я пытался провести некоторое тестирование, и единственное, что надежно работает, это вызвать marker.togglePopup() в ваш собственный обработчик кликов

map.on('click', event => {
  const target = event.originalEvent.target;
  const markerWasClicked = markerDiv.contains(target);

  marker.togglePopup();
});

Полный пример: https://jsfiddle.net/am2jwtzg/

0
ответ дан Scarysize 18 January 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: