Ich habe eine einzelne Ebene (Punkte) mit einer Reihe von Markern. Jeder Punkt hat ein Attribut, das regelmäßig aktualisiert wird. Ich verstehe, dass Leaflet die Ebenen so sortiert, dass diejenigen mit niedrigerem Breitengrad aus ästhetischen Gründen oben liegen, aber ich möchte sie so neu anordnen, dass in Bereichen der Clusterbildung diejenigen mit höheren Werten im Attribut oben liegen. Gibt es eine Möglichkeit, dies zu tun, ohne jeden Marker / Punkt in eine einzelne Ebene aufteilen zu müssen und die Zeichenreihenfolge auf diese Weise zu erzwingen?
quelle
Die aktuelle Version der Broschüre (Stand Anfang 2017) verfügt über eine zIndexOffset-Eigenschaft mit dem Standardwert = 0, mit der der Z-Index eines Markers angepasst werden kann. http://leafletjs.com/reference.html#marker-zindexoffset Funktioniert gut mit Zoomen und allem.
quelle
Dieses Plugin macht den Trick: leaflet.forceZIndex.js
Benutzen:
Die forceZIndex-Deklaration stellt sicher, dass ZIndex immer über aMarker.options.forceZIndex festgelegt wird
Aktualisieren Sie es irgendwo, um den ZIndex-Wert zu erzwingen
Oder setzen SieForceZIndex (null) auf den automatischen zIndex-Status:
Wenn am Ende des Tages keine forceZIndex-Option deklariert ist, funktioniert Marker mit normalem Verhalten.
quelle
Die einzigen derzeit verfügbaren Lösungen sind hackig und können in Zukunft nicht mehr funktionieren, wenn sie sich dafür entscheiden, etwas anderes als
pos.y
den Code zu verwenden oder ihn stark umzugestalten .Hier ist eine weitere einfache Hacky-Lösung, die einfacher zu verwenden ist und nicht bei jedem Zoomwechsel aktualisiert werden muss. Es macht das
zIndexOffset
reflektieren das tatsächlichezIndex
:Wenn Sie zIndex auf 100 setzen möchten, verwenden Sie einfach:
quelle