Eu tenho uma única camada (pontos) com um monte de marcadores. Cada ponto tem um atributo que é atualizado regularmente. Entendo, por Leaflet, que as camadas são classificadas de maneira que aquelas com menor latitude estejam no topo por razões estéticas, mas gostaria de reordená-las para que, nas áreas de agrupamento, aquelas com valores mais altos no atributo estejam no topo. Existe alguma maneira de fazer isso sem ter que dividir cada marcador / ponto em uma camada individual e forçar a ordem de desenho dessa maneira?
fonte
A versão atual do folheto (a partir do início de 2017) possui uma propriedade zIndexOffset com padrão = 0 que pode ser configurada para ativar o índice z de um marcador. http://leafletjs.com/reference.html#marker-zindexoffset Funciona bem com o zoom e tudo o mais.
fonte
Este plugin fará o truque: leaflet.forceZIndex.js
Usar:
A declaração forceZIndex garantirá que ZIndex seja sempre definido em aMarker.options.forceZIndex
Atualize-o em algum lugar para reforçar o valor do ZIndex
Ou setForceZIndex (null) para o estado zIndex automático:
No final do dia, se nenhuma opção forceZIndex for declarada, o Marker funcionará com comportamento normal.
fonte
As únicas soluções atualmente disponíveis são hacky e podem quebrar no futuro, se decidirem usar algo mais que
pos.y
ou refatorar fortemente o código.Aqui está outra solução hacky simples que é mais fácil de usar e não requer atualização do valor toda vez que o zoom muda. Faz
zIndexOffset
refletir o realzIndex
:Então, se você deseja definir zIndex como 100, basta usar:
fonte