Jak zmienić kolejność nakładania paneli map w ulotce (indeks Z)?

16

Ulotka utrzymuje, że elementy okienek mapy zawierają wszystkie warstwy dodane do mapy. Różnica między wieloma oknami mapy polega na kolejności nakładania warstw na indeks Z.

Chciałbym użyć kombinacji warstw lvector.CartoDB, które są zasadniczo overlayPanewarstwami, z TileLayer, takimi jak GeoIQ Acetate-bg i etykiety.

Oto kolejność elementów w miarę dodawania mapy:

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

Zwraca mapa z warstwami w tej kolejności:

tileLayer1,tileLayer2,cartoDBLayer1

tileLayer1i tileLayer2znajdują się w HTMLElement: TilePanei cartoDBLayer1jest w HTMLElement: overlayPane.

Czy jest jakiś sposób na wymuszenie cartoDBLayer1renderowania w TilePane, tak aby spadał w kolejności według indeksu Z dodanego do mapy w ...

to znaczy

z-index[0]:tileLayer1
z-index[1]:cartoDBLayer1
z-index[2]:tileLayer2 
Michał Markieta
źródło

Odpowiedzi:

17

Czy widziałeś, że ten problem utworzył jedno repozytorium github LeafLet:

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

Spróbuj użyć

 addLayer(layer,true);

aby dodać warstwę kafelków na dole. Obawiam się, że to wszystko, a ten drugi opcjonalny argument nie jest nawet udokumentowany.

Aktualizacja września 2014 r

Ulotka obsługuje teraz ustawianie zIndex . Dzięki @knutole w komentarzach za poinformowanie mnie.

unicoletti
źródło
1
+1 za wzmiankę o nieudokumentowanej funkcji tutaj, w ten sposób dokumentując ją. :)
fgysin przywraca Monikę
7
Dostępna jest teraz layer.setZIndex(zIndex)funkcja.
knutole
5
Dzięki - layer.setZIndex(99)wydaje się, że nie działa dla mnie z symboliką wektorową (cechy linii i wielokąta), ale layer.bringToFront()załatwiłem sprawę.
nic nie jest potrzebne