空间查询(QueryTask)— ArcGIS API For JavaScript

2018年4月3日 0 条评论 453 次阅读 2 人点赞

ArcGIS API For JavaScript提供了两个工具类用于查询任务

  1. IdentifyTask:利用该工具类可以对多个图层进行查询,主要利用IdentifyParameters对象来规定空间查询的参数。
  2. QueryTask:该工具只能对一个图层进行查询,但是利用该类进行查询的时候课指定属性过滤,所以可以同时进行几何和属性查询。该工具主要利用Query类来设定查询参数。

本文主要介绍利用QueryTask工具 首先构造一个Query对象,如果是几何查询,则设置Query对象的geometry属性为true。再通过设置where定义查询语句。

//String查询示例
query.where = "NAME = '" + stateName + "'"; 
//数字查询示例
query.where = "POP04 > " + population;

Query为对象执行QueryTask对象的execute方法,返回一个要素集,调用Graphicattributes.fieldName属性获取要素字段值。 下图是QueryTask要用到的类和方法。 QueryTask


以下是一个通过属性查询要素属性得到示例(已知OBJECTID,查询其他属性值)

var queryTask =new QueryTask("https://myserver:6443/arcgis/rest/services/esri/drivingSchool/FeatureServer/0");
var query=new Query();
query.outFields=["Name","OBJECTID","ds_count","ds_fee","de_desc","ds_phone","ds_pass2","ds_pass3","ds_evalute","ds_eval_nu"]
query.where="OBJECTID="+schoolObjecid;
queryTask.execute(query,function(fs){
                var ds=fs.features[0];
                //如果查询成功并有返回值,控制台输出其他属性
                if(ds){     
                    console.log(ds.attributes.Name+","+ds.attributes.ds_count+","+ds.attributes.ds_fee+"")
                    }else{
                            mui.alert("信息获取错误!!!!")
                        }
                    });

利用图形查询的例子,这里就不说了。方法就是设置Query.geometry为通过绘制工具得到的图形,然后再执行操作。大家可以参考: ArcGIS API for JavaScript——绘制工具(Draw)

肖大昕

这个人太懒什么东西都没留下

文章评论(0)