2

我正在使用Leaflet.StyledLayerControl插件,并希望设置我的图层,以便多边形始终被推到后面,多边形上方的线条和线条上方的点。

我已经在这里搜索了解决方案,但大多数都指的是 tilelayers 或地图窗格(我认为它们仅适用于其他版本的传单 1.0)。

我希望能够打开和关闭线并让它们始终位于点下方(与折线下方的多边形相同)。

setZIndex我猜我必须对or做点什么,bringToFront()但我不知道从哪里开始。

任何帮助,将不胜感激。谢谢。

4

1 回答 1

4

简单的解决方案实际上是使用Leaflet 1.0,它为您提供了map.createPane("paneName")功能。因此,您可以创建像“polygonsPane”、“linesPane”和“pointsPane”,使用它们的pane选项指定给每个矢量/形状图层。

设置后,您可以将它们添加到地图/从地图中删除,它们将始终插入指定的窗格中,因此尊重窗格的顺序。

// Create necessary panes in correct order (i.e. "bottom-most" first).
map.createPane("polygonsPane");
map.createPane("linesPane");
map.createPane("pointsPane");

L.polygon([/* coords */], { pane: "polygonsPane" }).addTo(map);
L.polyline([/* coords */], { pane: "linesPane" }).addTo(map);
L.circleMarker([/* coords */], { pane: "pointsPane" }).addTo(map);

演示:https ://jsfiddle.net/3v7hd2vx/51/

使用Leaflet 0.7,您知道所有矢量图层都是同一个 SVG 容器的一部分,在添加到地图时被附加,因此它们出现在所有先前添加的矢量之上。然后你必须使用bringToFront()和/或bringToBack()将它们重新排序为你需要的任何顺序。

你可能对那个帖子感兴趣:https ://gis.stackexchange.com/questions/166252/geojson-layer-order-in-leaflet-0-7-5/167904#167904

于 2016-07-27T19:22:39.453 回答