Tengo una sola capa (puntos) con un montón de marcadores. Cada punto tiene un atributo que se actualiza regularmente. Entiendo por Leaflet que las capas se clasifican de manera que los que tienen menos latitud están en la parte superior por razones estéticas, pero me gustaría reordenarlos de manera que en las áreas de agrupamiento, aquellos con valores más altos en el atributo estén en la parte superior. ¿Hay alguna manera de hacer esto sin tener que dividir cada marcador / punto en una capa individual y forzar el orden de dibujo de esa manera?
fuente
La versión actual del folleto (a principios de 2017) tiene una propiedad zIndexOffset con default = 0 que se puede configurar para atler el índice z de un marcador. http://leafletjs.com/reference.html#marker-zindexoffset Funciona bien con zoom y todo.
fuente
Este complemento hará el truco: leaflet.forceZIndex.js
Usar:
La declaración forceZIndex asegurará que ZIndex siempre se establecerá desde aMarker.options.forceZIndex
Actualízalo en algún lugar para volver a forzar el valor de ZIndex
O establezca ForceZIndex (nulo) en el estado automático de zIndex:
Al final del día, si no se declara la opción forceZIndex, Marker funcionará con un comportamiento normal.
fuente
Las únicas soluciones disponibles actualmente son hacky y pueden romperse en el futuro, si deciden usar algo más
pos.y
o refactorizar el código en gran medida.Aquí hay otra solución hacky simple que es más fácil de usar y no requiere actualizar el valor cada vez que cambia el zoom. Hace que el
zIndexOffset
reflejo sea realzIndex
:Luego, si desea establecer zIndex en 100, simplemente use:
fuente