【问题标题】:ESRI javascript featureLayer.graphicsESRI javascript featureLayer.graphics
【发布时间】: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 也不起作用。如何使用这个数组对象让我知道地图上显示了一个图层?

附件是控制台日志的截图。感谢您的帮助。

【问题讨论】:

    标签: arcgis esri


    【解决方案1】:

    我需要捕捉“更新结束”事件。最终代码:

    map = new esri.Map("mapDiv", {
        center: [-118.30, 34.3],
        zoom: 8,
        basemap: "topo"
    });
    
    
    
    on(map, "update-end", function(){           // update-end event will execute after the layer has been added to the map
       if(featureLayer.graphics.length >= 1)
       {
           // do your thing         
       }
    })   
    
    
    
    var featureLayer = new     
    
        esri.layers.FeatureLayer("http://services.arcgis.com/v01gqwMseaqNAi/arcgis/rest/services/Project_boundaries_021616/FeatureServer/0",{
       mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
       outFields: ["*"],
       opacity: 1                       
    }); 
    
    featureLayer.setDefinitionExpression("SrvyDescID=\'' . htmlspecialchars($SDID) . '\'");                 
    map.addLayer(featureLayer); 
    

    【讨论】:

      猜你喜欢
      • 2018-07-01
      • 2010-11-20
      • 2015-11-21
      • 2013-03-30
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 2016-06-09
      • 2014-10-23
      相关资源
      最近更新 更多