Возникла проблема при удалении слоя в ArcGIS API For JavaScript

Я добавляю слой маркеров под названием layer1 вот так, чтобы отобразить

function drawPoints(mapInfo) {
  layer1 = new esri.layers.GraphicsLayer();
    for (var i = 0; i < mapInfo.length; i++) {
           var projects = mapInfo[i];
           var project = new esri.geometry.Point(projects.Longitude, projects.Latitude);
           project = esri.geometry.geographicToWebMercator(project);
           var symbol = new esri.symbol.PictureMarkerSymbol("img/map/marker.png", 18, 18);
           projectInfoTemplate = new InfoTemplate();
           projectInfoTemplate.setTitle("Project Details");
           projectInfoTemplate.setContent('<div class="row"></div> ');
           var projectsG = new esri.Graphic(project, symbol).setInfoTemplate(projectInfoTemplate);
           layer1.add(projectsG);
           }
          map.addLayer(layer1);
 }

теперь в следующем запросе мне нужно очистить карту, поэтому я использовал

map.removeLayer(layer1);

но это вызывает ошибку, потому что layer1 по-прежнему не создается при первом запросе. Теперь мне нужно проверить IF, есть ли на карте слой с именем layer1, затем удалить его. Вот псевдокод того, что мне нужно сделать:

if(map.has/contains/include(layer1){
  map.removeLayer(layer1);
}

дайте мне знать, как это сделать?


person Suffii    schedule 16.09.2015    source источник


Ответы (1)


Это графический слой, поэтому он будет указан в массиве map.graphicsLayerIds. Вы можете найти и удалить слой следующим образом:

if (map.graphicsLayerIds.indexOf(layer1.id) != -1) {
  map.removeLayer(layer1);
}
person capie69    schedule 22.02.2016