Сохранение всплывающего окна mapboxgl-js открытым для слушателей, привязанных к движению мыши - PullRequest
0 голосов
/ 14 мая 2019

Я рисую карту с маршрутами (LineString) на них, и я обрабатываю

  • Наведите курсор мыши (через setFeatureState), чтобы они выглядели толще
  • щелчок мыши - чтобы выбрать маршрут и показать некоторую информацию вне карты

В случае, когда два клика обнаруживаются при нажатии (e.features.length > 1), я хочу показать new Popup({ closeButton: true }) с информацией / ссылками о неоднозначности, чтобы пользователь мог точно выбрать нужный маршрут.

К сожалению, отслеживание движения мыши приводит к исчезновению всплывающего окна, когда пользователь пытается войти во всплывающую область, чтобы щелкнуть ссылки внутри.

Итак, я делаю то, что я отключаю слушатели перемещения мыши перед тем, как показать всплывающее окно, и повторно связываюсь при закрытии

showPopup(mapbox){
  this.removeListeners(mapbox);

  const popup = new mapboxgl.Popup({
    closeButton: true,
    closeOnClick: true,
  });

  popup.once('close', () => {
    this.addListeners(mapbox);
  });
}

Есть ли лучший способ API решить эту проблему?

...