ArcGIS Maps SDK for JS:使用queryFeatures方法查询 FeatureLayer 中符合条件的要素
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后会输出查询到的要素数量,如果有错误则会捕获并输出错误信息。
评论已关闭