ArcGIS runtime SDK for WPF/Silverlight中的三种常用的查询:QueryTask、FindTask、IdentifyTask都是继承自ESRI.ArcGIS.Client.Tasks, 在ArcGIS运行时SDK for WPF/Silverlight中,有三种主要的查询方式,它们分别是QueryTask、FindTask和IdentifyTask,这些方法都继承自ESRI.ArcGIS.Client.Tasks,为用户提供不同的地理数据检索功能。 1. QueryTask是进行空间和属性查询的重要工具。它可以对地图服务的特定子图层进行查询,而且值得注意的是,被查询的地图服务不一定需要加载到Map组件中显示。QueryTask的执行需要两个关键参数:一是查询的目标图层URL,二是定义查询条件的过滤器。以下是一个QueryTask的基本使用示例: ```csharp // 创建QueryTask实例 QueryTask queryTask = new QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5"); // 创建Query对象 Query query = new Query(); // 设置查询的几何范围,可选 query.Geometry = geometry; // 指定返回几何信息 query.ReturnGeometry = true; // 指定返回的字段,这里选择"AREANAME"和"POP2000" query.OutFields.AddRange(new string[] { "AREANAME", "POP2000" }); // 设置Where条件,例如"POP2000 > 350000" query.Where = "POP2000 > 350000"; // 异步执行查询,绑定事件 queryTask.ExecuteCompleted += QueryTask_ExecuteCompleted; queryTask.Failed += QueryTask_Failed; // 执行查询 queryTask.ExecuteAsync(query); ``` 2. FindTask则用于基于属性值对地图上的一个或多个图层进行搜索。与QueryTask不同,FindTask不支持空间查询,而是专注于属性匹配。它的url属性指向整个地图服务的REST URL,而不是单个图层。以下是FindTask的基本操作: ```csharp // 创建FindTask实例 FindTask findTask = new FindTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/"); // 异步执行,绑定事件 findTask.ExecuteCompleted += FindTask_ExecuteCompleted; findTask.Failed += FindTask_Failed; // 初始化FindParameters FindParameters findParams = new FindParameters(); findParams.SearchText = "California"; findParams.Fields = new string[] { "STATE_NAME" }; findParams.MaxAllowableOffset = null; findParams.LayerIds = new int[] { 0, 1, 2 }; // 查询多个图层 findParams layersToSearch = new List<LayerInfo> { ... }; // 指定要搜索的图层 // 执行查找 findTask.ExecuteAsync(findParams); ``` 3. IdentifyTask主要用于获取用户交互(如鼠标点击)在地图上特定位置的详细信息。它可以识别多图层中的特征,并返回这些特征的所有属性。IdentifyTask同样不支持空间查询,但提供了一种获取地图上精确位置信息的方法。其使用方法与前两者类似,需要指定地图的URL、识别参数(包括坐标、图层列表等),并处理执行完成和失败的事件。 这三个任务在ArcGIS中各司其职,QueryTask适合复杂的属性和空间查询,FindTask适用于快速的属性匹配,而IdentifyTask则用于获取地图上的详细信息。理解并灵活运用这三种查询方式,能够极大地提升在ArcGIS环境中处理地理数据的效率。
- 粉丝: 13
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- qbcsjdq.zip
- 2023-04-06-项目笔记 - 第二百六十二阶段 - 4.4.2.260全局变量的作用域-260 -2025.09.20
- 2023-04-06-项目笔记 - 第二百六十二阶段 - 4.4.2.260全局变量的作用域-260 -2025.09.20
- 扫描全能王1.1.3 (MAC版本)
- IBM Rational DOORS DXL Reference Manual Release 9.5
- -KNN算法实现鸢尾花数据集分类-C语言实现-IrisClassification-KNNAlgorithm.zip
- -短链接管理系统,为企业和个人用户提供便捷的URL压缩和转换服务 系统通过非加密算法将长链接转换-shortrink.zip
- bp神经网路对Iris和MNIST数据集的MATLAB实现,非工具包-BASIC-Java项目设计资源
- a算法的matlab实现-A-star-matlab.zip
- 精品解析:四川省成都外国语学校2023-2024学年高一上学期10月月考数学试题.zip