第三节 基于对象的空间信息模型
一、空间对象
空间对象(Spatial object),称其为“空间的”,是因为它们存在于“空间”之中,即所谓“嵌入式空间”(Embedding space)。空间对象的定义取决于嵌入式空间的结构,例如,在一个只用整数坐标表示点的空间中,很难在其中定义一个圆。常用的嵌入式空间类型有:①欧氏空间(Euclidean),它允许在对象之间采用距离和方位的量度,欧氏空间中的对象可以用坐标组(Coordinate tuples)的集合来表示;②量度空间(Metric),它允许在对象之间采用距离量度(但不一定有方向);③拓扑空间(Topological),它允许在对象之间进行拓扑关系的描述(不一定有距离和方位);④面向集合的空间(Set-oriented),它只采用一般的基于集合的关系,如成员、包含、合并和相交等。
定义一个空间对象需要定义它的状态和行为。最常见的情况是:所讨论的空间是欧氏空间,而每个空间对象由一系列坐标组或可计算的方程式来定义。另一个方法是:定义一系列基本对象(如点、线和面),然后通过一系列操作构建应用域中所有其它对象。
下面是应用GIS所进行的一个简单分析,即计算在以医院为中心,半径为10英里的范围内主要道路的总长度(图4.17),建模过程如下。
以道路和医院来定义应用域中的空间参照对象类。经过抽象和概括,空间对象类分别是弧(Arc)、点(Point)和圆盘(Disc)。取长(Length)操作作用于弧,返回一实数值,相交(Intersect)操作则用以生成一条弧中属于圆盘的那一部分。各空间对象的定义如图4.18所示。
该分析过程分四步来完成,而每一分析步骤都是针对空间对象及其合法操作的运用:
(1)找到以代表医院的点为中心,半径为10英里的圆盘;
(2)找到圆盘与代表道路的每一条弧的交点;
(3)求上一步所获得的每一条所切弧段的长度;
(4)计算长度总和。
但是,上述的对象和操作不适合于计算,因为它们是连续的和无限的。需要一个离散化过程将这些对象转化为适于计算的类型。例如,圆盘由多边形区域表示,弧由线段链表示,点是离散空间的点;而各种操作,如相交和取长等,可以用计算几何的标准算法完成。图4.19用离散的方法表示了这个例子。
1.欧氏平面上的空间对象类型
图4.20表示了在连续的二维欧氏平面上的一种可能的对象继承等级图。最一般的空间对象类型Spatial在等级图的顶层。Spatial类包含Point和Extent两个类型,分别表示单独的点和二维的对象。Extent类又可根据维数分为1-extent和2-extent。1-extent的两个子类型——Arc和Loop,如果没有自相交,它们又分别称为Simple Arc(简单弧)和Simple Loop(简单环)。作为规则封闭集合的基本区域对象被称为Area类。连通的Area称为Region,而一个简单连通的Region(没有洞)被称为Cell。Cell与前文的Disc同形。
2.离散欧氏平面上的空间对象
欧氏空间的平面因连续而不可计算,必须离散化后才适于计算。图4.20中所有的连续类型的离散形式都存在。图4.21表示了部分离散一维Extent的对象继承等级关系。线段(Line segment)类型是由一些有界的可以包括也可以不包括直线两端端点的直线段组成,如果线段包含两个端点,则它是闭合的,如果两个端点都不包括,则它是开的。Polyline类型是一串首尾相连的线段,若Polyline的两个端点相同,则它是环状的,否则是非环的。二维离散空间中的空间对象是以离散的1-extent表示边界的2-extent。一个简单的环状Polyline的边界和内部区域即是一个简单多边形(Simple polygon)类型。
Polygon和Polyline分别是2-extent和1-extent低级的多项式近似。高级的多项式近似也适于计算并且在某些情况下会用到,例如,在等高线需要用平滑的曲线(高级近似曲线)而非锯齿状边缘表示时要用到高级的多项式近似。许多高级近似曲线在图形学和自动制图系统(CAD)中得到了广泛的应用,它们中的大部份是基于三次多项式:
ax3+bx2+cx+d
该多项式有4个系数a,b,c,d,因而有4个控制(自由度)可被改变来生成不同的形状。最常用的三次曲线是:Bezer,Hermite和B-spline,Bezier和Hermite曲线都是由两个端点和两个控制来定义,而B-spline是由两个端点和4个控制定义。Bezier三次曲线的两个例子和它们的控制点都表示在图4.22中。A、B是端
线方向。左侧曲线和右侧曲线表示如何通过改变切线角度来改变曲线形状;端点相同,切线角度不同,曲线形状不同。
本文标题:空间对象-基于对象的空间信息模型
手机页面:http://m.dljs.net/dlsk/gisdao/50249.html
本文地址:http://www.dljs.net/dlsk/gisdao/50249.html