Как я могу различить два разных векторных слоя в OpenLayers?

В моем дизайне есть флажок, который удаляет все векторные слои со следующим кодом.

// When I check that checkbox:
var layers = map.getLayersByClass('OpenLayers.Layer.Vector');

for(var j=0; j < layer_vectors.length; j++){
    map.removeLayer(layer_vectors[j]);
}

Который работает отлично. Мне нужно удалить все таким образом, потому что есть много векторных слоев, которые содержат полигоны.

Что делать, если у меня есть две разные группы векторных слоев? Как я могу удалить только один из них с помощью этого флажка?

Можем ли мы установить что-то вроде атрибута "data-layertype", как в обычных HTML-элементах? Как я могу различить два разных слоя после того, как получу их с помощью getLayersByClass?

Спасибо

1 ответ

Решение

ОК, я решил эту проблему. Я создаю целую группу с одним и тем же именем каждый раз, когда создаю векторный слой, и когда я удаляю слои, я различаю их по атрибуту ".name".

for(var j=0; j < layer_vectors.length; j++){
    if(layer_vectors[j].name == "group_name"){
        map.removeLayer(layer_vectors[j]);
    }
}
Другие вопросы по тегам