文档介绍:空间分析
空间查询
空间拓扑运算
空间关系运算
叠加分析
概述
空间分析是地理信息系统软件的基本功能之一,其应用范
围十分广泛,从地质、地理现象到社会经济现象,各种具有
空间属性的变量都可以通过空间分析揭示其空间特征。
通过空间分析,不但可以知道数据库中的数据,而且可以
通过这些数据去揭示更深刻、更内在的规律和特征,它特有
的对地理信息的提取、表现和传输功能,是地理信息系统区
别于一般信息系统的主要功能特征。
概述
空间分析根据使用的数据性质不同,可以分为:
(1)基于空间图形数据的分析运算;
(2)基于非空间属性的数据运算;
(3)空间和非空间数据的联合运算。
空间分析最终目的是解决人们涉及的地理空间实际问
题,提取空间信息(特别是隐含信息),为决策提供辅助支
持。
本章介绍了GIS中空间分析的部分基本功能,包括空间关
系运算、空间拓扑运算、空间查询、缓冲区分析、叠加分析
和网络分析,并描述如何结合C#与ArcObjects实现这些功
能。
一、空间查询
在ArcMap中,数据查询有两种类型:一种是基于非空间
属性选择,另一种是基于空间属性选择。前者可以回答诸如
“高度在100米以上的建筑是哪些”、“全市营业额在100万元
的商店有多少”的问题,后者可以告诉用户“中山公园1000
米范围内的停车场在什么地方”等空间查询问题。
一、空间查询
1 Cursor对象
Cursor(游标),是一个指向数据的指针,本身并不包含数据内
容,只提供一个连接到Row对象或要素对象的桥梁。在ArcObjects
中,常用的对象是FeatureCursor,它是Cursor的一个子类,指向一个
或多个要素。
利用Search方法,,
一个游标对象。这个Cursor指向了那些符合选择条件的要素。
IFeatureCursor pCursor;
pCursor=();//返回游标对象
IFeature pFeat;
pFeat=(); // 通过循环遍历游标所指向的要素
while(pFeat!=null)
{
//.……
pFeat=();
}
一、空间查询
2 QueryFilter对象
在关系数据库中,这些操作都是使用SQL语句的WHERE后而的子语句完
成,如“Select * from pTable where age>18”。
在ArcObjects中进行的查询或选择,也传给系统查找条件,即系统需
要知道它将返回满足什么条件的数据筛选出来,可以通过QueryFilter
对象来实现数据查询,它是一个依据属性查询表格型数据的过滤器。使
用这个过滤器将方便地取出某些记录,然后更新或删除它们,这些与用
户在普通关系型数据库中的做法并没有太大的区别。
IQueryFilter接口定义了QueryFilter类用于过滤数据时使用的属性
和方法。新建一个过滤器对象后,如WhereClause属性是必须设置的,
用于确定筛选的添加;而SubFields则用于设置返回的数据包含哪些字段,在默认的情况下,被设置为“*”,表示返回所有的字段,这与SQL
语句的“Select * from”相似。
一、空间查询
2 QueryFilter对象
下面的例子显示如何在一幅美国地图中选出California来:
IQueryFilter pQueryFilter=new QueryFiIterClass();
//设置过滤对象的属性
="STATE_NAME=‘California’";
IFeatureSelection pFeatureSelection;
pFeatureSelection=pFeatureLayer as IFeatureSelection;
(pQueryFilter,
, false);
如果在选择的过程中不过滤任何的记录,而是返回所有的数据,则可以使
用关键字“null”来替代pQueryFilter对象。
除了在选择条件中使用完全查询外,过滤器对象也支持模糊查询,如选择
一个全国城市SDE数据库中所有名称以‘B’开始的城市,过滤器的WhereClause
属性应该为:
pQueryFilter. WhereClause="STATE_ NAME like ‘B%’”
ess的,则