Leaflet.js: so entfernen Sie mehrere Schichten von anzeigen

Ich bin mit Leaflet.js für eine Karte. Jetzt will ich entfernen Hinzugefügt-Layer aus der Karte. Durch anklicken der Eingabe-Taste werden alle Kontrollkästchen aktiviert wird geändert auf deaktiviert und alle zugehörigen Schichten müssen entfernt werden von der Karte.

Entfernen Sie einen layer aus der Karte die id der Schicht erforderlich ist. Diese id entspricht der id des entsprechenden Kontrollkästchens. Das ist, warum ich jQuery verwenden, um die ids aller geprüften Kontrollkästchen und speichern Sie Ihre Werte in einem Objekt, hier mit dem Namen someObj.idsChecked.

Wenn ich versuche, aus den gespeicherten Wert val so entfernen Sie eine Ebene, die nicht funktionieren, während die Konsole.log zeigt den gewünschten Wert. Hier zum Beispiel: mapcat52.

Beim einlegen der vorherigen id hart codiert in der Funktion wie Karte.removeLayer(mapcat52) funktioniert es wie erwartet.

Wo ist der Fehler in meinem code oder meine Gedanken?
Jede Hilfe wird sehr geschätzt.

Den HTML -

<input type="button" id="selectnone" value="deselect all" />

<!-- checkboxes  --> 
<input id="mapcat52" type="checkbox" name="maplayer" class="maplayer"> 
<label for="mapcat52">Map Layer One</label>

<input id="mapcat53" type="checkbox" name="maplayer" class="maplayer"> 
<label for="mapcat53">Map Layer Two</label>

...

JS:

$('#selectnone').click(function() {
    var someObj = {};
    someObj.idsChecked = [];

    $("input:checkbox").each(function() {
        if ($(this).is(":checked")) {

            someObj.idsChecked.push($(this).attr("id"));
        }
    }).attr('checked', false);

    $.each(someObj.idsChecked,function(id, val) {

          //displays the wanted value, e.g. "mapcat52" if checkbox with this id is checked
          console.log(val);

          //does not work: inserted value
          map.removeLayer(val); 

          //works: hard coded value of the leaflet.js/input id
          map.removeLayer(mapcat52); 
        });

});
InformationsquelleAutor LuNarez | 2013-08-29
Schreibe einen Kommentar