Я рисую карту с маршрутами (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 решить эту проблему?