有关在ArcGIS API for JavaScript上删除图层的问题

时间:2015-09-16 01:44:34

标签: arcgis-js-api

我正在添加一个名为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);
}
你能告诉我怎么做吗?

1 个答案:

答案 0 :(得分:1)

它是一个图形图层,因此图层将列在map.graphicsLayerIds数组中。您可以像这样搜索和删除图层:

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