关于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 });

 

posted @ 2017-10-26 10:51  言午12138  阅读(780)  评论(0编辑  收藏  举报