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 

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.