ArcGIS Maps SDK for JS:使用queryFeatures方法查询 FeatureLayer 中符合条件的要素
    		       		warning:
    		            这篇文章距离上次修改已过443天,其中的内容可能已经有所变动。
    		        
        		                
                
require([
  "esri/layers/FeatureLayer",
  "esri/tasks/QueryTask",
  "esri/tasks/query",
  "dojo/on",
  "dojo/dom",
  "dojo/domReady!"
], function(FeatureLayer, QueryTask, Query, on, dom) {
  // 假设有一个FeatureLayer已经被定义并添加到地图中
  var featureLayer = new FeatureLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5");
  
  // 查询按钮的DOM元素
  on(dom.byId("queryButton"), "click", function() {
    // 创建Query对象,设置查询参数
    var query = new Query();
    query.returnGeometry = true;
    query.outFields = ["*"];
    query.where = "POP2007 > 100000"; // 示例条件:人口2007年超过100000
    
    // 创建QueryTask
    var queryTask = new QueryTask(featureLayer.url);
    
    // 执行查询并处理结果
    queryTask.execute(query).then(function(result) {
      // 处理查询结果
      console.log("查询到的要素数量: ", result.features.length);
      // 可以在这里进行进一步的处理,例如将查询结果显示在地图上或列表中
    }).catch(function(error) {
      // 错误处理
      console.error("查询出错: ", error);
    });
  });
});这段代码首先定义了必要的模块,然后在DOM准备好后,为查询按钮添加了点击事件处理函数。在该函数中,它创建了一个Query对象并设置了查询参数,然后创建了一个QueryTask,并执行查询。查询结果是Promise对象,成功resolve后会输出查询到的要素数量,如果有错误则会捕获并输出错误信息。
评论已关闭