网站大量收购独家精品文档,联系QQ:2885784924

ArcGISEngine地图查询.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ArcGISEngine地图查询

地图查询、统计是一个GIS系统的基本的功能模块,实际上统计功能的前提也是通过查询获取结果以文字或者图表等报表的形式展现查询结果数据。 地图查询有两种类型的查询: 1.空间查询:在地图上设置一定范围,查询这一范围内的要素。例如在地图上画一范围查询这一区域内的所有消防栓,这一范围的所有消防栓高亮显示(或者其他显示方式)并展现出所有的消防栓的属性信息。 2.属性查询:通过一定的查询条件获取目标要素。例如我们需要查询中国行政区上人口大于5000万,同时GDP大于1万亿的省份,通过执行查询,符号条件的省份高亮显示(或者其他显示方式)并展现出这些省份的属性信息。 ArcGIS Engine9.3为开发者提供了无需写代码即可进行查询功能的Identify工具,但是这个工具是一个通用的信息查询新工具。而开发者通常需要自己开发一套符合自己业务需求更加灵活的查询功能模块,甚至一些功能不仅仅是查询信息,很多编辑编辑功能以及和业务相结合的功能开发都用到查询功能。所以很有必要了解ArcGIS Engine的查询机制。 5.1目标 1.熟悉Cursor,FeatureCursor对象,使用IFeatureCursor接口 2.熟悉QueryFilter, SpatialFilter对象使用IQueryFilter,ISpatialFilter接口 3.熟悉要素选择集SelectionSet对象,会使用IFeatureSelection,ISelectionSet接口 4.开发一个属性查询小功能Demo, 获取符号查询条件的Feature,并IFeatureLayerDefinition接口创建一个新的要素图层加载到Mapcontrol上 5.开发一个空间多边形查询功能的小Demo, 学会创建内存半透明图层用于显示选择范围 5.2准备工作 1.IDE:Visual Studio 2005/2008 2.ArcGIS Engine Developer kit 9.3 3.准备一份用于查询的的矢量数据(文章内有说明) 5.3Cursor对象 Cursor(游标)本质上是一个指向数据的指针,本身并不包含数据内容,它是连接到Row对象或要素对象的桥梁。 ? ?游标有三种类型,即查询游标、插入游标和更新游标。每一种游标都是通过与之相适应的方法来获得的,如Search、Insert和Update方法。更新和插入游标都需要使用一个过滤器(Filter)对象,因为它们首先必须获得需要进行操作的要素。 ? ?? ???Cursor对象支持的接口是ICursor,它定义了操作一个Row集合或一个Row对象的属性和方法,下面是获得插入型、更新型和查询型游标的方法: ? ?? ???pCursor = IFeatureClass.Insert() 使用IFeatureClass的Insert方法返回一个插入型游标,它通常用于往表中插入一条记录。 ? ?? ???pCursor = IFeatureClass.Update() 使用IFeatureClass的Update方法会返回一个更新型游标,它用于更新或者删除一条记录。 ? ?? ???pCursor= IFeatureClass.Search() 使用IFeatureClass的Sarch方法对表进行查询后,可以得到一个查询型Cursor对象,它指向一个或多个Row对象。 ? ?? ?以我们这章的内容主要使用查询游标。 ? ?? ?FeatureCursor是Cursor的一个子类,指向一个或多个要素,它实现了IFeatureCursor接口,ArcGIS Engine开发所对矢量图层实现查询功能都是实行IFeatureCursor。 5.4QueryFilter对象与SpatialFilter对象? ? ? ???在关系型数据库中,查询条件是通过SQL语句的Where子语句来完成的。在ArcGIS Engine中不能直接使用SQL语句,但ArcGIS Engine提供了QueryFilter和SpatialFilter两个过滤器对象来配合完成查询条件的设置,从而查询到想要的数据。 ? ?? ?? ? QueryFilter过滤器主要用于对属性数据查询条件的设置,它主要实现IQueryFilter接口从而实现属性查询功能。 CODE: IQueryFilter pQueryFilter = new QueryFilterClass(); //设置过滤器对象的属性 pQueryFilter.WhereClause = 人口 ? ? ?? ?? ? SpatialFilter过滤器主要用于空间范围查询条件的设置,它主要实现ISpatialFilter(继承 IQueryFilter接口)接

文档评论(0)

liudao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档