关于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的空间查询