传单:如何在多边形后面显示标记?

Leaflet: How to display markers behind polygons?

我的地图上需要图标 (PNG) 和多边形。所以我将图标创建为标记,将多边形创建为多边形。不幸的是,无论创建顺序如何,多边形都会显示 "below" 个标记。我需要的是反之亦然。有没有办法,怎么做?

编辑:

更正 Leaflet 中的默认窗格顺序 0.x:(从最上到最下)

  1. objectsPane
    1. 弹出面板
    2. markerPane <= 所有标记图标(L.CircleMarker 除外)
    3. shadowPane <= 所有标记 icon 阴影
    4. overlayPane <= 所有矢量(包括L.CircleMarker
  2. tilePane

因此仅使用标记的图标阴影是不够的。您必须在 CSS(或通过 JS)中手动更改这些窗格的 z-index

另见


原回答:

矢量(比如你的多边形)和标记的堆叠顺序在 Leaflet 中是固定的 0.x。它们被插入到“panes”中,顺序是(从最上到最下):

  1. 弹出面板
  2. markerPane <= 所有标记图标(L.CircleMarker 除外)
  3. overlayPane <= 所有矢量(包括L.CircleMarker
  4. shadowPane <= 所有标记 icon 阴影
  5. tilePane

因此,您应该能够使用标记的 Icon shadow 轻松解决此固定顺序。如果您仍希望用户能够点击您的标记,只需为普通图标使用透明图像,其大小与您的阴影图像相同。

Leaflet 1.0的情况有所不同。您可以创建自己的窗格 (map.createPane),通过指定它们的 zIndex(可能通过 CSS)来设置它们的顺序,并使用它们的 [=17= 指定您的矢量和标记的位置](标记为 shadowPane)选项。