Leaflet.js: Как удалить несколько слоев с карты

Я использую Leaflet.js для карты. Теперь я хочу удалить добавленные слои с карты. При нажатии кнопки ввода # все отмеченные флажки должны быть заменены на непроверенные, а все соответствующие слои должны быть удалены с карты.

Для удаления слоя с карты нужен идентификатор слоя. Этот идентификатор равен идентификатору соответствующего флажка. Тот'Поэтому я использую jQuery, чтобы получить идентификаторы всех отмеченных флажков и сохранить их значение в объекте, называемом здесьsomeObj.idsChecked.

Когда я пытаюсь использовать сохраненное значениевал удалить один слой это неработать, покаconsole.log отображает требуемое значение. Вот например: mapcat52.

При вставке предыдущего идентификатора жестко закодировано в функцию, какmap.removeLayer (mapcat52) это работает как ожидалось.

Где ошибка в моем коде или моих мыслях?

Буду признателен за любую оказанную помощь.

HTML



 
 
Map Layer One

 
Map Layer Two

...

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

});

Ответы на вопрос(3)

Ваш ответ на вопрос