ArcGIS Engine地图查询技术详解

5星 · 超过95%的资源 需积分: 10 5 下载量 165 浏览量 更新于2024-07-25 收藏 561KB DOC 举报
ArcGIS Engine地图查询 ArcGIS Engine地图查询是GIS系统的基本功能模块之一,实际上统计功能的前提也是通过查询获取结果以文字或者图表等报表的形式展现查询结果数据。地图查询有两种类型的查询:空间查询和属性查询。 **空间查询** 空间查询是指在地图上设置一定范围,查询这一范围内的要素。例如在地图上画一范围,查询这一区域内的所有消防栓,这一范围的所有消防栓高亮显示(或者其他显示方式)并展现出所有的消防栓的属性信息。 **属性查询** 属性查询是指通过一定的查询条件获取目标要素。例如我们需要查询中国行政区上人口大于500万,同时GDP大于1万亿的省份,通过执行查询,符号条件的省份高亮显示(或者其他显示方式)并展现出这些省份的属性信息。 **ArcGIS Engine查询机制** ArcGIS Engine9.3为开发者提供了无需写代码即可进行查询功能的Identify工具,但是这个工具是一个通用的信息查询新工具。开发者通常需要自己开发一套符合自己业务需求更加灵活的查询功能模块,甚至一些功能不仅仅是查询信息,很多编辑编辑功能以及和业务相结合的功能开发都用到查询功能。所以很有必要了解ArcGISEngine的查询机制。 **Cursor对象** Cursor(游标)本质上是一个指向数据的指针,本身并不包含数据内容,它是连接到Row对象或要素对象的桥梁。游标有三种类型,即查询游标、插入游标和更新游标。每一种游标都是通过与之相适应的方法来获得的,如Search、Insert和Update方法。更新和插入游标都需要通过Cursor对象来实现。 **FeatureCursor对象** FeatureCursor对象是Cursor对象的子类,用于查询要素数据。FeatureCursor对象提供了对要素数据的随机访问,使得开发者可以快速地查询和处理要素数据。 **QueryFilter对象** QueryFilter对象是用于定义查询条件的对象。开发者可以使用QueryFilter对象来定义查询条件,然后使用该条件来查询要素数据。 **SpatialFilter对象** SpatialFilter对象是用于定义空间查询条件的对象。开发者可以使用SpatialFilter对象来定义空间查询条件,然后使用该条件来查询要素数据。 **SelectionSet对象** SelectionSet对象是用于存储要素选择集的对象。开发者可以使用SelectionSet对象来存储要素选择集,然后使用该选择集来查询要素数据。 **开发实践** 要开发一个属性查询小功能Demo,需要: 1. 熟悉Cursor,FeatureCursor对象,使用IFeatureCursor接口 2. 熟悉QueryFilter,SpatialFilter对象使用IQueryFilter,ISpatialFilter接口 3. 熟悉要素选择集SelectionSet对象,会使用IFeatureSelection,ISelectionSet接口 4. 开发一个属性查询小功能Demo,获取符号查询条件的Feature,并IFeatureLayerDefinition接口创建一个新的要素图层加载到Mapcontrol上 5. 开发一个空间多边形查询功能的小Demo,学会创建内存半透明图层用于显示选择范围 **准备工作** 1. IDE:VisualStudio2005/2008 2. ArcGISEngineDeveloperkit9.3 3. 准备一份用于查询的矢量数据(文章内有说明) 通过学习ArcGIS Engine地图查询相关知识点,开发者可以更好地掌握ArcGIS Engine的查询机制,开发更加灵活的查询功能模块,满足业务需求。