Como alterar a ordem de camadas dos painéis do Leaflet Map (z-index)?

16

O Folheto mantém que os elementos dos painéis Mapa contêm todas as camadas adicionadas ao mapa. A diferença entre muitos dos painéis do Mapa é estritamente a ordem de camadas do índice z.

Gostaria de usar uma combinação de camadas lvector.CartoDB, que são essencialmente overlayPanecamadas, com o TileLayer, como GeoIQ Acetate-bg e labels.

Esta é a ordem dos elementos à medida que são adicionados ao mapa:

tileLayer1 = new L.TileLayer();
map.add(tileLayer1);  // add first layer to map

cartoDBLayer1 = new lvector.CartoDB();
cartoDBLayer.setMap(map); // add second layer to map

tileLayer2 = new L.TileLayer();
map.add(tileLayer2);  // add third layer to map

O que retorna é um mapa com camadas nesta ordem:

tileLayer1,tileLayer2,cartoDBLayer1

tileLayer1e tileLayer2estão situados no HTMLElement: TilePanee cartoDBLayer1está dentro HTMLElement: overlayPane.

Existe alguma maneira de forçar cartoDBLayer1a renderização no TilePane, de modo que caia na ordem do z-index que é adicionado ao mapa em ...

ie

z-index[0]:tileLayer1
z-index[1]:cartoDBLayer1
z-index[2]:tileLayer2 
Michael Markieta
fonte

Respostas:

17

Você já viu esse problema criar um repositório do github LeafLet:

https://github.com/Leaflet/Leaflet/issues/167

tente usar

 addLayer(layer,true);

para adicionar uma camada de lado a lado. Receio que seja tudo o que existe e esse segundo argumento opcional nem sequer está documentado.

Atualização de setembro de 2014

O folheto agora suporta a configuração do zIndex . Obrigado a @knutole nos comentários por me informar.

unicoletti
fonte
1
+1 por mencionar um recurso não documentado aqui, documentando-o. :)
fgysin restabelece Monica
7
Agora existe uma layer.setZIndex(zIndex)função disponível.
knutole
5
Obrigado - layer.setZIndex(99)não parece funcionar para mim com simbologia vetorial (recursos de linha e polígono), mas o uso layer.bringToFront()fez o truque.
nothingisnecessary