Два курсора на картах одновременно в Mapbox GL-JS

#mapbox #mapbox-gl-js

#mapbox #mapbox-gl-js

Вопрос:

Я разрабатываю средство просмотра погодных радаров с использованием Mapbox. В определенном режиме на экране одновременно отображаются 2 карты Mapbox, показывающие разные режимы радара. Карты привязаны друг к другу. Когда одна карта перемещается, поворачивается или панорамируется — другая делает то же самое. Я сделал это, просто передав свойства одной карты другой. На скриншоте ниже вы увидите, как они отображают идентичные местоположения.

Что я хочу сделать, так это — когда пользователь наводит курсор мыши на «map1», я хотел бы идентичный (призрачный или ложный) курсор на «map2». Вот что я хочу сделать:

(редактировать: то, на что вы смотрите, является фактическим скриншотом. Каждая карта заключена в DIV шириной 50% экрана, если это поможет объяснить)

введите описание изображения здесь

Я не знаю, возможно ли это вообще в Mapbox. Надеюсь, кто-нибудь сможет дать некоторые рекомендации, поскольку я не могу найти никаких других вопросов, связанных с этим, и у меня действительно нет кода для показа, не зная, с чего начать.

Ответ №1:

Если вы попытаетесь сделать это внутри Mapbox-GL-JS (например, постоянно обновляя местоположение слоя объектов GeoJSON), я думаю, что производительность будет довольно низкой.

Но поскольку два вида точно заблокированы (и, предположительно, имеют одинаковые размеры), вы можете просто сделать это на уровне HTML / CSS. Обнаружьте движение мыши на первой карте и обновите местоположение элемента с абсолютным расположением, нависающего над второй картой, для соответствия.

Другим подходом было бы использование canvas элемента, наложенного на вторую карту, аналогичным образом обновленную.

Комментарии:

1. Я уже принял ваш ответ, но это сработало с использованием CSS и абсолютного позиционирования вместо функций Mapbox. Ваша помощь в сообществе Mapbox здесь очень ценится.