我正在向地图添加一个名为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,所以我使用了
map.removeLayer(layer1);但这会导致错误,因为layer1仍然不是在第一次请求时创建的。现在我需要检查IF,地图有一个名为layer1的图层,然后删除它。下面是我需要做的伪代码:
if(map.has/contains/include(layer1){
map.removeLayer(layer1);
}你能告诉我怎么做吗?
发布于 2016-02-22 20:00:27
它是一个图形层,因此该层将在map.graphicsLayerIds数组中列出。您可以搜索并删除图层,如下所示:
if (map.graphicsLayerIds.indexOf(layer1.id) != -1) {
map.removeLayer(layer1);
}https://stackoverflow.com/questions/32598411
复制相似问题