关于ArcGis for javascrept查询ArcGis server图层信息的方式

Posted YanWu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ArcGis for javascrept查询ArcGis server图层信息的方式相关的知识,希望对你有一定的参考价值。

方式一: queryTask方式: 该方式用于单个图层的条件查询(不能跨图层查询)

  1. 创建query对象

1 query = new esri.tasks.Query();

  2. 给query对象设置参数

1 query.returnGrometry = true;
2 query.outFields = [‘id, name, ......‘]  // 查询结果集返回的字段
3 query.where = ‘id=‘ + id;         // 查询条件

  3. 创建queryTask对象

1 queryTask = new esri.tasks.QueryTask(‘http://......‘);  // 创建queryTask对象,参数为要查询的图层连接

  4. 查询以及结果集处理

1 queryTask.execute(query, (results) => { // 将query对象作为参数传递给execute方法, results为查询结果集
2   if (results.features.length > 0) {    // 回调函数
3     ......  // 处理结果集
4   } else {
5     ......  // 结果集为空
6   }
7 });

 

方式二: FindTask方式: 该方式用于同一图层下多个层级的模糊查询(可进行跨图层, 且只能模糊查询)

  1. 创建FindTask对象:

1 find = new esri.tasks.FindTask(layerUrl); // layerUrl为要进行查询的图层连接

  2. 创建params参数对象

1 params = new esri.tasks.FindParameters();
2 params.layerIds = [0, 1, 2, ......];     // 设置查询图层列表
3 params.searchFields = [‘swchNAME‘];      // 设置查询图层的字段,根据swchNAME字段来模糊查询
4 params.searchText = swchName;            // 设置模糊查询的关键词
5 params.returnGeometry = true;            // 返回空间查询的geometry,方便把返回值结果以图标形式叠加在地图上

  3. 查询以及结果集处理

1 find.execute(params, (results) => { // 回调函数
2     if (results.length > 0) {
3         ......  // 处理结果集
4     } else {
5         ......  // 结果集为空
6     }
7 });

 

以上是关于关于ArcGis for javascrept查询ArcGis server图层信息的方式的主要内容,如果未能解决你的问题,请参考以下文章

ArcGis for flex查询FeatureLayer数据

Arcgis runtime for Android 100.5 (九) 空间查询

ArcGIS API For Javascript之查询功能

Arcgis for Js实现graphiclayer的空间查询

关于翻译ArcGIS API for JavaScript开发书籍的经历

ArcGIS api for javascript——查询,然后单击显示信息窗口