Интерактивность маркеров / точек на карте в зависимости от выбранного метода рендеринга - PullRequest
0 голосов
/ 02 апреля 2019

AFAIK, при нанесении маркеров на карту mapbox (Mapbox GL JS) у вас есть два варианта:

(a) , чтобы отобразить их как стили точек и слоев (в этом случае они отображаются в конечном элементе <canvas>, они не подлежат проверке, они не могут получить: состояния при наведении

(b) для добавления их в качестве маркеров, которые затем остаются индивидуально проверяемыми элементами HTML. Недостатком этого метода является то, что они не увеличивают и не масштабируют так быстро и плавно, как карта, так что небольшая инерция заметна.

Оба метода поддерживают взаимодействие (если вы указали interactive: true в опции (a) ), хотя вы обрабатываете его по-разному.

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

1 Ответ

2 голосов
/ 03 апреля 2019

Это довольно широкий вопрос.Но в целом я вижу преимущества каждого метода следующим образом:

  • Слои: часть карты, так что вы получаете обнаружение столкновений, управление данными, масштабирование и т. Д.
  • Маркеры: часть DOM, поэтому вы получаете CSS, события Javascript, простую интеграцию изображений и шрифтов и более простую обработку событий мыши, например :hover.

Не совсем верно сказать, чтослои не поддерживают :hover.Вы можете обнаружить mouseOver, а затем map.setFeatureState(), чтобы установить свойство наведения на функцию.Просто вы не получаете это бесплатно.

...