我正在努力正确地订购我的图层。
http://fiddle.jshell.net/zw8TR/6/
我有一个包含几个不同图层的地图:普通图块(通过Mapbox),Google地图图块,Geojson(从Topojson转换)世界地图多边形,标记和折线。
问题始于Google地图图块 - 它们在z-index中的位置高于普通图块,以及标记/折线,掩盖其他所有内容。我用CSS修复了这个问题。
(旁白:根据我的经验,这没有意义 - z-index是继承,因此如果父母的z-index为1,则孩子不能有任何其他比z索引为1.你可以看到.leaflet-google-layer
的直接子项的内联z索引为0,而实际的tile(子项)的z-index为200+,似乎是在浏览器中很荣幸。我不明白为什么会发生这种情况。如果内联添加z-index是否继承?)
接下来,默认情况下,Leaflet将我的geoJson
多边形放在Overlay图层中。在里面,有一个SVG平移和缩放地图(很好!)。但是,我的折线也被添加到顶部的同一个SVG中,现在被矢量图遮挡了。 SVG具有以下内联属性 - style="transform: translate3d(...);"
。由于这会强制3D,z-index不再能够解决问题。
我想控制我的图层如何添加到DOM中。我的geoJson矢量地图(以及Google地图图块,如果可能的话)应该与Tile图层一起添加到.leaflet-tile-pane
div。我试过跟this demo手动添加'窗格'但得到错误(我的小提琴中的第19行):
Object [object Object] has no method 'getContainer'
或
Uncaught NotFoundError: An attempt was made to reference a Node in a context where it does not exist.
当我删除方法时。我怀疑这是因为我试图创建的图层不是图块层,但我不确定如何修复它。
毕竟,我很高兴知道:如何从.leaflet-overlay-pane
中取出我的geoJson图层?