2017-05-22 3 views
1

J'ai deux groupes de calques entre l'utilisateur qui peut basculer dans un panneau de contrôle de calque. Cela fonctionne bien jusqu'à présent.Leaflet.js - Recherche de superposition sélectionnée

Comment puis-je connaître la superposition actuellement sélectionnée (0 == a ou 1 == b)? J'appelle la fonction qui peint un groupe de calques toutes les deux minutes (window.setTimeout ("myFunction()", 120 * 1000);), et je voudrais m'assurer de "redessiner" seulement le groupe de calques sélectionné.

Voici comment ajouter le contrôle des deux superpositions à la carte:

var a = new L.LayerGroup(); 
var b = new L.LayerGroup(); 

var overlays = { 
     "Option A": a, 
     "Option B": b 
    }; 

L.control.layers(overlays).addTo(map); 

Répondre

2

Il existe plusieurs méthodes. Vous pouvez écouter les événements de carte qui ajoutent ou suppriment des calques; Vous pouvez ajouter d'autres gestionnaires d'événements à votre panneau de configuration de couche.

Mon choix personnel serait d'appeler map.hasLayer(a), ce qui renvoie un booléen et est assez explicite. Voir le hasLayer() documentation.

+0

Merci, j'étais aveugle pour la solution hasLayer() - qui a parfaitement fonctionné pour moi :-) – voland