Листовка: Как отображать маркеры за полигонами?

Мне нужны иконки (PNG) и полигоны на моей карте. Поэтому я создаю иконки как маркеры и полигоны как полигоны. К сожалению, независимо от порядка создания полигоны отображаются "под" маркерами. Мне нужно наоборот. Есть ли способ, как это сделать?


person user3523426    schedule 05.11.2015    source источник


Ответы (1)


РЕДАКТИРОВАТЬ:

Правильный порядок панелей по умолчанию в Leaflet 0.x: (от самого верхнего к самому нижнему)

  1. objectsPane
    1. popupPane
    2. markerPane ‹= значок всех маркеров (кроме L.CircleMarker)
    3. shadowPane ‹= все маркеры тень значка
    4. overlayPane ‹= все векторы (включая L.CircleMarker)
  2. ПлиткаПан

Так что просто использовать тень значка маркера недостаточно. Вы должны вручную изменить z-index этих панелей в CSS (или через JS).

См. также Листок: Ломаная линия над маркером.


Оригинальный ответ:

Порядок стека векторов (например, полигонов) и маркеров исправлен в Leaflet 0.x. Они вставляются в "панели" в следующем порядке (сверху вниз- самый):

  1. всплывающая панель
  2. markerPane ‹= значок всех маркеров (кроме L.CircleMarker)
  3. overlayPane ‹= все векторы (включая L.CircleMarker)
  4. shadowPane ‹= все маркеры тень значка
  5. ПлиткаПан

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

В Leaflet 1.0 ситуация иная. Вы можете создать свои собственные панели (map.createPane), установить их порядок, указав их zIndex (возможно, через CSS), и указать, куда идут ваши векторы и маркеры, используя их параметры paneshadowPane для маркеров).

person ghybs    schedule 05.11.2015