Leaflet 打开/关闭图层时更改图层顺序
我加载了两个geoJson层——出于测试目的,这两个层都是相同的数据,但都来自两个不同的json文件。当我在图层控制器中打开和关闭图层时,图层的绘制顺序会更改 知道为什么会这样吗 我已将我的代码放入一个JSFIDLE:中,JS如下所示:Leaflet 打开/关闭图层时更改图层顺序,leaflet,geojson,Leaflet,Geojson,我加载了两个geoJson层——出于测试目的,这两个层都是相同的数据,但都来自两个不同的json文件。当我在图层控制器中打开和关闭图层时,图层的绘制顺序会更改 知道为什么会这样吗 我已将我的代码放入一个JSFIDLE:中,JS如下所示: //styling for watersheds_copy var Orange = { "color": "#ff7800", "weight": 5, "opacity": 0.65 }; var Water_Ora
//styling for watersheds_copy
var Orange = {
"color": "#ff7800",
"weight": 5,
"opacity": 0.65
};
var Water_Orange = L.geoJson(watersheds_copy, {
style: Orange
});
Water_Orange.addData(watersheds_copy);
//these are blue
var Water_blue = L.geoJson(watersheds, {});
Water_blue.addData(watersheds);
//This sets the inital order - last in layer list being on top. Except minimal - tile layer is always on bottom
var map = L.map('map', {
center: [41.609, -74.028],
zoom: 8,
layers: [minimal, Water_Orange, Water_blue]
});
var baseLayers = {
"Minimal": minimal,
"Night View": midnight
};
//This controls the order in the layer switcher. This does not change draw order
var overlays = {
"Water_Orange": Water_Orange,
"Water_blue": Water_blue
};
L.control.layers(baseLayers, overlays).addTo(map);
LP它不是特定于L.GeoJson层的。据我所知,这是真实的所有传单层与层控制。打开的最后一层仅位于顶部。我也不认为这是一个错误。这是我在使用图层控制设计地图时使用和依赖的可预测行为…至少在0.7.2上,我必须在
map.on('overlayadd')
的回调中使用bringToFront
<代码>autoZIndex:false在我的情况下也不起作用。可能会解释原因。在搜索时,我偶然发现这个网站显示了一些传单代码:
在其中,我发现了autoZIndex应用的条件:
if (this.options.autoZIndex && layer.setZIndex) {
this._lastZIndex++;
layer.setZIndex(this._lastZIndex);
}
TileLayer是唯一具有setZIndex函数的层类型,因此autoZIndex显然只在那里起作用
我不知道哪个更让我恼火。这是一个令人难以置信的限制,或者Leavet文档没有指出这一点。我在您的JSFIDLE上没有看到任何东西。您的JSFIDLE不工作。但是,在使用层控件打开/关闭时,层不应更改顺序。请参阅API中L.Control.Layers部分中的
autoZIndex
选项:。您是否有可能更改此控件之外的层?我修复了JSFIDLE:,谢谢。我还尝试将autoZindex设置为true,但这没有帮助。如果您关闭两个流域图层,然后在图层控件中打开蓝色图层,然后是橙色图层-您将看到图层的绘制顺序与地图初始化时不同。这不是答案,但是-此问题似乎特定于L.GeoJson图层。这可能是一个错误。我无法用任何其他类型的层(我用L.layerGroup和L.TileLayer尝试过)重现此问题-在这些情况下,zIndex层被正确保留。我的建议是通过这些L.GeoJson层的传单源代码进行调试,看看它们的情况可能会有什么不同。我一直在寻找答案,但运气不好。我至少喜欢显式控制绘图顺序的选项。有些图层属于堆栈的底部,如果将其切换为OFF,则应返回堆栈。我认为用户在尝试单击多边形底部的点时会发现这一点非常混乱。用户希望列表顶部的图层在顶部绘制(如在GIS桌面软件产品中)。