【发布时间】:2016-06-24 11:49:49
【问题描述】:
我正在制作一张使用 FeatureLayer.Mode_ONDEMAND 的地图。要查看某个层,我使用 featureLayer.setDefinitionExpression 传入一个项目 ID。在存在这样的层的地方,我看到了。我想知道的是如何检测何时不存在图层。我想向查看者打印警报,而不是只显示空白地图。这是我的代码:
function init() {
map = new esri.Map("mapDiv", {
basemap: "topo",
zoom: 9
});
var featureLayer = new esri.layers.FeatureLayer("http://services.arcgis.com/v01g34asdwfAi/arcgis/rest/services/Projects/FeatureServer/0",{
mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
outFields: ["*"],
opacity: 1
});
featureLayer.setDefinitionExpression("SrvyDescID=\'' . htmlspecialchars($ProjectID) . '\'");
console.log(featureLayer.graphics);
console.log(featureLayer.graphics[0]);
map.addLayer(featureLayer);
}
我学到的是当项目有效时,feature.graphics 会返回一个数组。但我无法将它视为一个数组。例如:
console.log(featureLayer.graphics) 返回一个数组对象 但 console.log(featureLayer.graphics[0]) 返回“未定义”。
featureLayer.graphic.length 也不起作用。如何使用这个数组对象让我知道地图上显示了一个图层?
附件是控制台日志的截图。感谢您的帮助。
【问题讨论】: