如何更改Leaflet Map窗格的分层顺序(z索引)?


16

Leaflet认为“地图”窗格元素包含添加到地图的所有图层。许多“地图”窗格之间的差异严格来说是分层的z索引顺序。

我想结合使用lvector.CartoDB图层(本质上是overlayPane图层)与TileLayer(例如GeoIQ Acetate-bg和标签)。

这是将元素添加到地图时的顺序:

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

返回的是一张具有以下顺序的图层的地图:

tileLayer1,tileLayer2,cartoDBLayer1

tileLayer1并且tileLayer2位于HTMLElement: TilePanecartoDBLayer1HTMLElement: overlayPane

有什么方法可以强制cartoDBLayer1在TilePane中进行渲染,从而使其按添加到地图中的z-index的顺序下降。

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

Answers:


17

您是否看到过此问题创建了一个LeafLet github存储库:

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

尝试使用

 addLayer(layer,true);

在底部添加平铺层。恐怕只有这些了,第二个可选参数甚至都没有记载。

2014年9月更新

传单现在支持设置zIndex。感谢@knutole在评论中让我知道。


1
+1表示此处未记录的功能,因此对其进行了记录。:)
fgysin恢复Monica 2012年

7
现在有layer.setZIndex(zIndex)可用的功能。
knutole 2014年

5
谢谢- layer.setZIndex(99)似乎不适用于矢量符号系统(线和面要素),但是使用layer.bringToFront()了技巧。
没必要,2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.