8
votes

Commande de commande de couche lorsque vous tournez la couche marche / arrêt

J'ai deux couches de Geojson chargées - les deux couches sont les mêmes données à des fins de test, mais étant tirées de deux fichiers JSON différents. Lorsque je tourne et désactive les couches dans le contrôleur de calque, l'ordre du tirage des couches change.

Des idées Pourquoi cela se produit? P>

J'ai mis mon code dans un jsfiddle: http://jsfiddle.net/lprashad/ph5y9/10/ et le JS est ci-dessous: P>

//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);


5 commentaires

Je ne vois rien sur votre jsfiddle.


Votre Jsfiddle ne fonctionne pas. Cependant, vos couches ne doivent pas changer de commande lors de la mise sous tension / éteinte avec le contrôle des calques. Voir l'option autozindex dans la section L.Control.layers de l'API: Leafletjs.com/reference.html#Control-layers . Y a-t-il une chance que vous changez les couches en dehors de ce contrôle?


J'ai corrigé le jsfiddle: jsfiddle.net/lprashad/ph5y9 , merci. J'ai également essayé le Set AutoZindex sur TRUE, mais cela n'aide pas. Si vous éteignez les deux couches de bassin versant, allumez la couche bleue, puis la couche orange dans la commande de couche - vous verrez que les couches se retrouvent dans une commande de tirage différente de celle de la carte.


Pas une réponse, mais - ce problème semble spécifique aux couches L.Geojson. Ce peut être un bug. Je ne peux pas reproduire ce problème avec aucun autre type de couche (j'ai essayé avec L.LayerGroup et L.Tilelayer) - dans ces cas, la couche Zindex est correctement préservée. Ma suggestion serait de déboguer à travers la source de brochure pour ces couches L.Geojson et de voir ce qui pourrait être différent dans leur cas.


Je cherche une réponse à cela ou un moment sans chance. J'avais au moins comme la possibilité de contrôler explicitement la commande de tirage. Certaines couches appartiennent au bas de la pile et doivent y retourner s'ils sont basculés.


3 Réponses :


0
votes

Ce n'est pas spécifique aux couches L.Geojson. Pour autant que je puisse dire, il est vrai de toutes les couches de notice avec contrôle de couche. La dernière couche allumée est simplement sur le dessus. Je ne pense pas que ce soit un bug non plus. C'est un comportement prévisible que j'utilise et dépend de lorsque je concevons des cartes avec contrôle de couche ...


1 commentaires

Je pense que l'utilisateur constaterait que très déroutant lorsque vous essayez de cliquer sur des points situés au bas d'un polygone. Les couches sur la liste sont attendues par les utilisateurs de dessiner sur le dessus (comme dans un produit logiciel GIS Desktop).



1
votes

au moins sur 0.7.2, je devais utiliser CadverttoFront dans le rappel de map.on ("superwayadd") . AutoZindex: False n'a pas fonctionné dans mon cas ni. Un commentaire sur ce numéro peut expliquer la raison.


0 commentaires

2
votes

Lors de la recherche, je suis arrivé sur ce site qui montre une partie du code de la notice: http: / /Ruby-doc.org/gems/docs/l/leaflet-js-0.7.0.3/lib/leaflet/src/Control/Control_layers_js.html

J'ai trouvé cette condition pour l'application de AutoZindex : xxx

tilelayer est le seul type de couche qui comporte une fonction SETZindex, donc apparemment AutoZindex ne fonctionne que là-bas.

Je ne suis pas sûr qui me dérange Suite. Cette incroyable limitation ou le fait que la documentation de feinet ne le pointe pas.


0 commentaires