我正在使用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])返回“undefined”。
featureLayer.graphic.length也不起作用。如何使用此数组对象让我知道地图上会显示一个图层?
附件是控制台日志的屏幕截图。谢谢你的帮助。
答案 0 :(得分:0)
我需要抓住" update-end"事件。最终代码:
class Base_C{
public:
boost::shared_ptr<Base_B> barB;
Base_C(){};
virtual ~Base_C(){};
// other pure virtual functions...
};
class Derived_C :public Base_C{
public:
boost::shared_ptr<Base_B> barC;
Derived_C(boost::shared_ptr<Base_B> _barC);
~Derived_C(){};
// declaration of the pure virtual functions...
};