我正在添加一个名为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);
}
你能告诉我怎么做吗?
答案 0 :(得分:1)
它是一个图形图层,因此图层将列在map.graphicsLayerIds数组中。您可以像这样搜索和删除图层:
if (map.graphicsLayerIds.indexOf(layer1.id) != -1) {
map.removeLayer(layer1);
}