- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
空间分析 空间查询 空间拓扑运算 空间关系运算 叠加分析 概述 空间分析是地理信息系统软件的基本功能之一,其应用范 围十分广泛,从地质、地理现象到社会经济现象,各种具有 空间属性的变量都可以通过空间分析揭示其空间特征。 通过空间分析,不但可以知道数据库中的数据,而且可以 通过这些数据去揭示更深刻、更内在的规律和特征,它特有 的对地理信息的提取、表现和传输功能,是地理信息系统区 别于一般信息系统的主要功能特征。 概述 空间分析根据使用的数据性质不同,可以分为: (1)基于空间图形数据的分析运算; (2)基于非空间属性的数据运算; (3)空间和非空间数据的联合运算。 空间分析最终目的是解决人们涉及的地理空间实际问 题,提取空间信息(特别是隐含信息),为决策提供辅助支 持。 本章介绍了GIS中空间分析的部分基本功能,包括空间关 系运算、空间拓扑运算、空间查询、缓冲区分析、叠加分析 和网络分析,并描述如何结合C#与ArcObjects实现这些功 能。 一、空间查询 在ArcMap中,数据查询有两种类型:一种是基于非空间 属性选择,另一种是基于空间属性选择。前者可以回答诸如 “高度在100米以上的建筑是哪些”、“全市营业额在100万元 的商店有多少”的问题,后者可以告诉用户“中山公园1000 米范围内的停车场在什么地方”等空间查询问题。 一、空间查询 1 Cursor对象 Cursor(游标),是一个指向数据的指针,本身并不包含数据内 容,只提供一个连接到Row对象或要素对象的桥梁。在ArcObjects 中,常用的对象是FeatureCursor,它是Cursor的一个子类,指向一个 或多个要素。 利用Search方法,如ILayer.Search, ITable.Search等都可以返回 一个游标对象。这个Cursor指向了那些符合选择条件的要素。 IFeatureCursor pCursor; pCursor=pFeatlyr.search();//返回游标对象 IFeature pFeat; pFeat=pCursor.NextFeature(); // 通过循环遍历游标所指向的要素 while(pFeat!=null) { //.…… pFeat=pCursor.NextFeature(); } 一、空间查询 2 QueryFilter对象 在关系数据库中,这些操作都是使用SQL语句的WHERE后而的子语句完 成,如“Select * from pTable where age18” 。 在ArcObjects中进行的查询或选择,也传给系统查找条件,即系统需 要知道它将返回满足什么条件的数据筛选出来,可以通过QueryFilter 对象来实现数据查询,它是一个依据属性查询表格型数据的过滤器。使 用这个过滤器将方便地取出某些记录,然后更新或删除它们,这些与用 户在普通关系型数据库中的做法并没有太大的区别。 IQueryFilter接口定义了QueryFilter类用于过滤数据时使用的属性 和方法。新建一个过滤器对象后,如WhereClause属性是必须设置的, 用于确定筛选的添加;而SubFields则用于设置返回的数据包含哪些字段,在默认的情况下,被设置为“*”,表示返回所有的字段,这与SQL 语句的“Select * from” 相似。 一、空间查询 2 QueryFilter对象 下面的例子显示如何在一幅美国地图中选出California来: IQueryFilter pQueryFilter=new QueryFiIterClass(); //设置过滤对象的属性 pQueryFilter.WhereClause=STATE_NAME=‘California’; IFeatureSelection pFeatureSelection; pFeatureSelection=pFeatureLayer as IFeatureSelection; pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResuItEnum.esriSelectionResuItNew, false); 如果在选择的过程中不过滤任何的记录,而是返回所有的数据,则可以使 用关键字“null”来替代pQueryFilter对象。 除了在选择条件中使用完全查询外,过滤器对象也支持模糊查询,如选择 一个全国城市SDE数据库中所有名称以‘B’
文档评论(0)