leaflet.js中的图层排序

use*_*791 20 gis leaflet

如何强制在Leaflet中添加到地图的新图层成为底图上的第一个图层?

我找不到一种方法来轻松更改图层的顺序,这是一个非常基本的GIS功能.我错过了什么吗?

InP*_*uit 13

Leaflet映射由一组"Panes"组成,其视图顺序使用z-index控制.每个窗格都包含一个图层集合默认窗格显示顺序是tiles-> shadows-> overlays-> markers-> popups.与Etienne描述的一样,您可以通过调用bringToFront()或控制覆盖窗格中路径的显示顺序bringToBack(). L.FeatureGroup还有这些方法,因此您可以根据需要一次更改叠加组的顺序.

如果要更改整个窗格的显示顺序,则只需使用CSS更改窗格的z-index.

如果你想添加一个新的Map窗格......那么我不知道该怎么做.

http://leafletjs.com/reference.html#map-panes

http://leafletjs.com/reference.html#featuregroup


Eti*_*gné 7

根据Leaflet API,您可以使用bringToFrontbringToBack在任何图层上将该图层添加到所有路径图层的顶部或底部.

艾蒂安

  • Leaflet最近还添加了setZIndex方法,可以在TileLayer上使用CSS手动管理切片层顺序 (2认同)

Bil*_*ris 5

有关更多细节,Bobby Sudekum汇总了一个精彩的演示,展示了窗格z-index的操作.我一直用它作为起点.

这是关键代码:

var topPane = L.DomUtil.create('div', 'leaflet-top-pane', map.getPanes().mapPane);
var topLayer = L.mapbox.tileLayer('bobbysud.map-3inxc2p4').addTo(map);
topPane.appendChild(topLayer.getContainer());
topLayer.setZIndex(7);
Run Code Online (Sandbox Code Playgroud)

  • 在SO中不鼓励链接答案,尝试用你自己的话回答它,如果你必须发布链接作为参考.此外,链接可能最终破裂,这将使你的答案毫无意义. (2认同)