
正文
关于ArcGis for javascrept查询ArcGis server图层信息的方式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
方式一: queryTask方式: 该方式用于 单个 图层的条件查询(不能跨图层查询)
1. 创建query对象
query = new esri.tasks.Query();
2. 给query对象设置参数
query.returnGrometry = true;
query.outFields = ['id, name, ......'] // 查询结果集返回的字段
query.where = 'id=' + id; // 查询条件
3. 创建queryTask对象
queryTask = new esri.tasks.QueryTask('http://......'); // 创建queryTask对象,参数为要查询的图层连接
4. 查询以及结果集处理
queryTask.execute(query, (results) => { // 将query对象作为参数传递给execute方法, results为查询结果集
if (results.features.length > 0) { // 回调函数
...... // 处理结果集
} else {
...... // 结果集为空
}
});
方式二: FindTask方式: 该方式用于同一图层下多个层级的模糊查询(可进行跨图层, 且只能模糊查询)
1. 创建FindTask对象:
find = new esri.tasks.FindTask(layerUrl); // layerUrl为要进行查询的图层连接
2. 创建params参数对象
params = new esri.tasks.FindParameters();
params.layerIds = [0, 1, 2, ......]; // 设置查询图层列表
params.searchFields = ['swchNAME']; // 设置查询图层的字段,根据swchNAME字段来模糊查询
params.searchText = swchName; // 设置模糊查询的关键词
params.returnGeometry = true; // 返回空间查询的geometry,方便把返回值结果以图标形式叠加在地图上
3. 查询以及结果集处理
find.execute(params, (results) => { // 回调函数
if (results.length > 0) {
...... // 处理结果集
} else {
...... // 结果集为空
}
});







