我正在努力正确地订购我的图层。
http://fiddle.jshell.net/zw8TR/6/
我有一张包含几个不同图层的地图:普通图块(通过 Mapbox)、Google 地图图块、Geojson(从 Topojson 转换)世界地图多边形、标记和折线。
问题从谷歌地图瓦片开始——它们在 z-index 中的位置比普通瓦片和标记/折线更高,掩盖了其他一切。我已经用 CSS 解决了这个问题。
(旁白:根据我的经验,这没有任何意义——z-index 是继承的,因此如果父母的 z-index 为 1,则孩子只能拥有 z-index 1。你可以看到直接的子级.leaflet-google-layer
的内联 z-index 为 0,而实际的图块(它们是子级)的 z-index 为 200+,这在浏览器中似乎得到了尊重。我不明白为什么会这样。是 z-如果内联添加索引不继承?)
接下来,默认情况下,Leaflet 将我的geoJson
多边形放在叠加层中。在里面,有一个 SVG 可以随地图平移和缩放(很好!)。但是,我的折线也被添加到顶部的同一个 SVG 中,现在被矢量图形遮挡了。SVG 具有以下内联属性 - style="transform: translate3d(...);"
. 由于这会强制 3D,因此 z-index 不再适用于解决问题。
我想控制如何将我的图层添加到 DOM。我的 geoJson 矢量地图(和谷歌地图图块,如果可能的话),应该通过添加到.leaflet-tile-pane
div 与 Tile 图层一起放置。我曾尝试按照此演示手动添加“窗格”,但出现错误(我的小提琴中的第 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.
当我删除该方法时。我怀疑这是因为我要创建的图层不是平铺图层,但我不确定如何修复它。
毕竟,我很高兴知道:如何将我的 geoJson 层从.leaflet-overlay-pane
??