2015-09-16 2 views
0

Я добавляю маркеры слой под названием layer1 как это картаИмея выпуск на удаление слоя на ArcGIS API для JavaScript

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, затем removeit. Вот псевдокод, что мне нужно сделать:

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

Вы можете, пожалуйста, дайте мне знать, как сделать это?

ответ

1

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

if (map.graphicsLayerIds.indexOf(layer1.id) != -1) { 
    map.removeLayer(layer1); 
} 
Смежные вопросы