J'ai une seule couche (points) avec un tas de marqueurs. Chaque point a un attribut qui est régulièrement mis à jour. Je comprends que Leaflet trie les couches de telle sorte que celles qui sont plus basses en latitude soient au sommet pour des raisons esthétiques, mais je voudrais les réorganiser de telle sorte que dans les zones de regroupement, celles qui ont des valeurs plus élevées dans l'attribut soient en haut. Y a-t-il un moyen de le faire sans avoir à diviser chaque marqueur / point en une couche individuelle et à forcer l'ordre de tirage de cette façon?
la source
La version actuelle de la brochure (au début de 2017) a une propriété zIndexOffset avec default = 0 qui peut être définie pour atler le z-index d'un marqueur. http://leafletjs.com/reference.html#marker-zindexoffset Fonctionne très bien avec le zoom et tout.
la source
Ce plugin fera l'affaire: leaflet.forceZIndex.js
Utiliser:
La déclaration forceZIndex garantira que ZIndex sera toujours défini à partir de aMarker.options.forceZIndex
Mettez-le quelque part à jour pour re-forcer la valeur ZIndex
Ou définissezForceZIndex (null) sur l'état zIndex automatique:
À la fin de la journée, si aucune option forceZIndex n'est déclarée, Marker fonctionnera avec un comportement normal.
la source
Les seules solutions actuellement disponibles sont hacky et peuvent se briser à l'avenir, si elles décident d'utiliser autre chose que
pos.y
ou de refactoriser fortement le code.Voici une autre solution hacky simple qui est plus facile à utiliser et ne nécessite pas de mettre à jour la valeur à chaque fois que le zoom change. Il fait
zIndexOffset
refléter le réelzIndex
:Ensuite, si vous souhaitez définir zIndex sur 100, utilisez simplement:
la source