打开/关闭图层时图层顺序的变化

Lee*_*Lee 8 geojson leaflet

我有两个geoJson图层被加载 - 这两个图层是用于测试目的的相同数据,但是从两个不同的json文件中提取.当我在图层控制器中打开和关闭图层时,图层的绘制顺序会发生变化.

任何想法为什么会这样?

我已将我的代码放入JSFiddle:http://jsfiddle.net/lprashad/ph5y9/10/,JS如下:

//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);
Run Code Online (Sandbox Code Playgroud)

唱片

小智 0

它不是特定于 L.GeoJson 层的。据我所知,所有具有图层控制的 Leaflet 图层都是如此。最后打开的一层位于顶部。我也不认为这是一个错误。这是我在设计具有图层控制的地图时使用和依赖的可预测行为......

  • 我认为用户在尝试单击多边形底部的点时会发现非常混乱。用户希望在列表顶部的图层在顶部进行绘制(如在 GIS 桌面软件产品中一样)。 (2认同)