Мне нужны иконки (PNG) и полигоны на моей карте. Поэтому я создаю иконки как маркеры и полигоны как полигоны. К сожалению, независимо от порядка создания полигоны отображаются "под" маркерами. Мне нужно наоборот. Есть ли способ, как это сделать?
Листовка: Как отображать маркеры за полигонами?
Ответы (1)
РЕДАКТИРОВАТЬ:
Правильный порядок панелей по умолчанию в Leaflet 0.x: (от самого верхнего к самому нижнему)
- objectsPane
- popupPane
- markerPane ‹= значок всех маркеров (кроме
L.CircleMarker
) - shadowPane ‹= все маркеры тень значка
- overlayPane ‹= все векторы (включая
L.CircleMarker
)
- ПлиткаПан
Так что просто использовать тень значка маркера недостаточно. Вы должны вручную изменить z-index
этих панелей в CSS (или через JS).
См. также Листок: Ломаная линия над маркером.
Оригинальный ответ:
Порядок стека векторов (например, полигонов) и маркеров исправлен в Leaflet 0.x. Они вставляются в "панели" в следующем порядке (сверху вниз- самый):
- всплывающая панель
- markerPane ‹= значок всех маркеров (кроме
L.CircleMarker
) - overlayPane ‹= все векторы (включая
L.CircleMarker
) - shadowPane ‹= все маркеры тень значка
- ПлиткаПан
Таким образом, вы сможете легко обойти этот фиксированный порядок с помощью значка shadow маркера. сильный>а>. Если вы все еще хотите, чтобы пользователь мог щелкнуть ваш маркер, просто используйте прозрачное изображение для обычного значка того же размера, что и ваше теневое изображение.
В Leaflet 1.0 ситуация иная. Вы можете создать свои собственные панели (map.createPane
), установить их порядок, указав их zIndex
(возможно, через CSS), и указать, куда идут ваши векторы и маркеры, используя их параметры pane
(и shadowPane
для маркеров).
z-index
этих панелей в CSS. См. Листок: Ломаная линия над маркером
- person ghybs; 19.11.2015