Wednesday, 27 December 2017

How to change Leaflet Map panes layering order (z-index)?


Leaflet maintains that the Map panes elements contain all layers added to the map. The difference between many of the Map panes is strictly the z-index order of layering.


I would like to use a combination of lvector.CartoDB layers, which are essentially overlayPane layers, with TileLayer, such as GeoIQ Acetate-bg and labels.


This is the ordering of the elements as they are added the map:


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

What returns is a map with layers in this order:


tileLayer1,tileLayer2,cartoDBLayer1

tileLayer1 and tileLayer2 are situated in the HTMLElement: TilePane and cartoDBLayer1 is in HTMLElement: overlayPane.



Is there any way to force cartoDBLayer1 to render in the TilePane, such that it falls in order of the z-index that it is added to the map in...


i.e.


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

Answer



Update Sept 2014


Leaflet now supports setting the zIndex. Thanks to @knutole in the comments for letting me know.


Old Answer


Have you seen this issue created one the LeafLet github repo:



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


try to use


 addLayer(layer,true);

to add a tile layer to the bottom. I'm afraid that's all there is and this second optional argument is not even documented.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...