Ich habe zwei geoJson-Ebenen geladen - beide Ebenen sind die gleichen Daten für Testzwecke, werden aber aus zwei verschiedenen JSON-Dateien gezeichnet. Wenn ich die Ebenen im Ebenen-Controller ein- und ausschalte, ändert sich die Zeichenreihenfolge der Ebenen.Ebenenreihenfolge beim Ein-/Ausschalten der Ebene
Irgendwelche Ideen, warum das passiert?
Ich habe meinen Code in eine JSFiddle setzen: http://jsfiddle.net/lprashad/ph5y9/10/ und der JS ist unten:
//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
Ich sehe nichts auf Ihrer Hand. –
Ihr JSFiddle funktioniert nicht. Ihre Ebenen sollten jedoch nicht die Reihenfolge ändern, wenn Sie mit dem Ebenen-Steuerelement ein- und ausschalten. Siehe die Option "autoZIndex" im Abschnitt L.Control.Layers in der API: http://leafletjs.com/reference.html#control-layers. Gibt es eine Chance, dass Sie die Ebenen außerhalb dieser Kontrolle ändern? –
Ich reparierte den JSFiddle: http://jsfiddle.net/lprashad/ph5y9/, danke. Ich habe auch versucht, den AutoZindex auf True zu setzen, aber das hilft nicht. Wenn Sie beide Wasserscheiden-Layer deaktivieren, aktivieren Sie die blaue Ebene und dann die orange Ebene im Ebenen-Steuerelement. Sie werden sehen, dass die Ebenen in einer anderen Zeichenreihenfolge enden als beim Initialisieren der Karte. – Lee