2017-06-27 3 views
1
anhängen

Hier ist ein vereinfachtes Beispiel meines "Problems".Key/Value-Paar an L.Control.layer in Leaflet

Ich habe eine Liste von Schlüssel/Wert-Paare wie folgt aus:

var baseMaps = {"thing1": thing1, 
       "thing2": thing2}; 

var overlayMaps = {"OverLay1": link to overlay2 
        "Overlay2": link to overlay2}; 

etc ...........

Ich kann diesen Code verwendet, um mein Objekt hinzufügen auf list:

overlayMaps["New Item"] = link to new item; 

Ich verifiziere auf der Konsole, dass es der overlayMaps Liste hinzugefügt wird.

Problem: Es erscheint nicht in der Box auf der Seite der Karte wie alle anderen. Sie sind in einer Schachtel mit kleinen Häkchen von ihnen, um sie ein- und auszuschalten. Fehle ich etwas Code, um dies zu tun? Es scheint, als ob ich einen Weg brauche, um die Layergruppenliste zu aktualisieren.

Antwort

1

Angenommen, der Rest Ihres Codes entspricht dem Beispiel in documentation.

Das Problem ist, dass Sie den Verweis auf die Steuerungsinstanz verloren haben, weil sie nichts zugewiesen wurde. Da die addTo-Methode verkettet werden kann, erhalten Sie die Kontrolle.

var layerControl = L.control.layers(baseLayers, overlays).addTo(map); 

Jetzt können Sie in Ihrem Code darauf zugreifen und seine Methoden wie LayerControl ausführen. addBaseLayer