ArcGIS API For JavaScript提供了两个工具类用于查询任务
IdentifyTask
:利用该工具类可以对多个图层进行查询,主要利用IdentifyParameters
对象来规定空间查询的参数。QueryTask
:该工具只能对一个图层进行查询,但是利用该类进行查询的时候课指定属性过滤,所以可以同时进行几何和属性查询。该工具主要利用Query
类来设定查询参数。
本文主要介绍利用QueryTask工具
首先构造一个Query
对象,如果是几何查询,则设置Query
对象的geometry
属性为true
。再通过设置where
定义查询语句。
//String查询示例query.where = "NAME = '" + stateName + "'"; //数字查询示例query.where = "POP04 > " + population;
以Query
为对象执行QueryTask
对象的execute
方法,返回一个要素集,调用Graphic
的attributes.fieldName
属性获取要素字段值。
下图是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)
GIS技术交流:GISGO(http://www.gisgo.top)