我有 3 层,一个与小册子绘制一起使用的 GeoJSON 和两个(矢量和画布/热图)仅显示叠加层。
我的问题是,叠加层稍后会通过图层控件动态添加,而 GeoJSON 图层始终存在。添加叠加层后,一些绘制功能和与 GeoJSON 层的一般交互开始工作,因为我的叠加层始终位于顶部。
我怎样才能让 GeoJSON 层回到前面?
使用layer.bringToFront()
无效。
我有 3 层,一个与小册子绘制一起使用的 GeoJSON 和两个(矢量和画布/热图)仅显示叠加层。
我的问题是,叠加层稍后会通过图层控件动态添加,而 GeoJSON 图层始终存在。添加叠加层后,一些绘制功能和与 GeoJSON 层的一般交互开始工作,因为我的叠加层始终位于顶部。
我怎样才能让 GeoJSON 层回到前面?
使用layer.bringToFront()
无效。
.bringToFront()
如果图层是通过图层控件添加的,则可以通过每次overlayadd
触发事件时将 GeoJSON 图层反弹回来来保持您的 GeoJSON 图层:
map.on('overlayadd', function() {
yourGeoJsonLayerName.bringToFront();
});
一个有点笨拙的示例小提琴在这里:
http://fiddle.jshell.net/nathansnider/yt65dkyt/
尽管在 Leaflet 1.0 betas 中可以通过将图层分配给具有持久 zIndex 的窗格来更优雅地处理图层排序,但看起来 Leaflet Draw 还没有正式支持 1.0,所以.bringToFront
它是!