云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 面向对象的三维矢量GIS 数据模型及拓扑关系的建立

面向对象的三维矢量GIS 数据模型及拓扑关系的建立

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 13:56:29

http;//www.othermap.com测绘信息网

面向对象的三维矢量GIS数据模型及

拓扑关系的建立

孙 敏① 唐小明② 赵仁亮① (①中南工业大学资环建院 410083) (②中国林业科学院资源信息所 100091)

【摘 要】 本文针对三维GIS拓扑空间关系的复杂性,提出了以表为基本单元的面向对象的数据模型,这种数据模型能表达网状的空间拓扑关系,较直观地反映了三维GIS中复杂的空间拓扑关系。文中还对这种结构的拓扑关系和空间数据库的动态建立作了说明。 http;//www.othermap.com测绘信息网 一、引 言

到目前为止,三维GIS一直处于理论研究阶段,虽然有三维GIS系统问世,但其功能远远不能满足人们分析问题的需要,原因主要是三维GIS理论不成熟,其拓扑关系模型一直没有解决,另外三维基础上的数据量十分大,很难建立一个有效的,易于编程实现的三维模型。采用什么样的数据模型对GIS空间拓扑关系的建立以及空间分析与操作至关重要。随着在许多行业诸如煤炭、地质、石油、矿山、城市地下管网、城市空间规划等对三维GIS的需求日益迫切,三维GIS数据模型理论近来受到许多学者的关注,在八叉树与三维边界表示法基础上提出了如基于八叉树与TIN的混合结构[1]、八叉树与TEN的混合结构[2]、面向对象的矢量与栅格一体化结构[3]以及其他结构[4],尽管这些结构在理论上有很大的进展,但实现较困难,也难以与已有的二维GIS兼容。基于八叉树结构的缺点在于指针占用存贮空间大,重编码费时长且精度低,不宜于表示线面对象。而三维GIS中的矢量与栅格一体化在目前实现有相当的困难,且目前所提出的模型的可行性有待检验。三维GIS要比二维GIS复杂得多,如果GIS中拓扑空间基本元素分为点、线、面,那么在二维空间的GIS中,GIS的主要元素点、线、面同处于一个平面上,点的第三维坐标(高程)作为一个属性值输入,且一个面的描述只用其周边即可确定。而在三维GIS中,面元素不再只是平面,而可能是极不规则的空间曲面。描述一个面元素不能再只用其边线。面的生成与描述要用较复杂的方法,如用TIN、TEN或分块Bezier曲面、分块B样条曲面合成的方法(后两种算法适合于大面积较规则的曲面)。因而一个能直观、全面、清晰地表达三维GIS中复杂的拓扑关系,并能简捷地完成三维GIS空间数据分析和操作的数据模型成了人们研究探讨的核心。这里笔者针对三维GIS拓扑空间的复杂性,提出一种面向对象的三维GIS空间矢量网状数据模型,它以链表作为基本结构,把点、线、面、体看作是三维GIS的基本元素,以每个元素为对象设计数据结构。这种结构由面向对象的二维GIS发展而来,符合人们处理GIS基本元素对象的习惯,能较直观自然地表达三维GIS中各个对象间的拓扑关系,由面向对象的二维GIS系统向面向对象的三维GIS过渡也较易实现。

http;//www.othermap.com测绘信息网

二、面向对象三维矢量GIS数据结构

按面向对象程序设计的风格,对每一个基本元素定义一个类,拓扑关系包含在类的成员变量及成员函数中。这样程序设计中只针对每个元素,运用其成员变量,编写其成员函数,程序通过调用其成员函数即可实现拓扑关系的自动建立。用Visual C++可写出三维矢量GIS数据模型如下:http;//www.othermap.com测绘信息网

class CBasePoint //定义A基础点元素类 {

struct point{ float x;//X坐标 浮点型32位 float y;//Y坐标 浮点型32位 float z;//Z坐标 浮点型32位

}point-element;//定义点类的坐标结构 ??其他成员变量及成员函数。 };

class CorPoint:CBasePoint //定义坐标点元素类,由基础点元素派生 {

Cpoly m-poly;//定义一个面元素变量标识该点的归属,用来在输入点后生成面

??其他成员变量及成员函数。 }; class CnodPoint:CBasePoint //定义结点元素类,由基础点元素派生http;//www.othermap.com测绘信息网 {

LINELIST m-lines;// 定义一个线表用来管理以该点为结点的线元素

??其他成员变量及成员函数。 }; class CBaseLine // 定义基础线元素类 {

POINTLIST m-points;//定义一个表结构用来管理构成线元素的所有点元素。

POINTLIST m-nodPoints;//定义一个表结构用来管理该线元素的结点;

??其他成员变量及成员函数。};

class CnodLine: CBaseLine //定义结线元素类,由基础线类派生 {

POLYLIST m-poly;//定义一个表结构用来管理以该线作为邻边的面元素。http;//www.othermap.com测绘信息网 ??其他成员变量及成员函数。}; class Cpoly ///定义面元素类 {

LINELIST m-lineList;//定义一个表结构用来管理构成该面元素的所有线元素。

LINELIST m-lineList2;//定义一个表结构用来管理该面元素的所

http;//www.othermap.com测绘信息网

有边线元素。http;//www.othermap.com测绘信息网

LINELIST m-nodLineList;//定义一个表结构用来管理该面元素的所有结线。

POINTLIST m-pointList;//定义一个表结构管理用来生成该面元素的所有点元素。

FORMLIST m-forms;//定义一个表结构用来管理以该面元素为邻面的体。

??其他成员变量及成员函数。}; class Cform ///定义体元素类 {

POLYLIST m-polyList;//定义一个表结构用来管理构成该形体的所有面元素。

POLYLIST m-nodPolyList;//定义一个表结构用来管理该形体的所有公用面元素。

TREELIST m-WeightPoint; //定义一个树形结构用来管理不均匀体中的插值点;http;//www.othermap.com测绘信息网 ??其他成员变量及成员函数。};

以上表结构用来保存指针,通过表结构中的这种指针来表达空间拓扑关系。

从上面的定义可以看出,每个基本元素类中包含了构成它的基本元素,也包含了由它构成的更高一级的元素。很显然上面所描述的是一个具有网状关系的数据模型,如图1所示。

图 1

“构成”是指上一级元素由下一级元素组成,“结线”是指多个面以此线为公共交线,“公共面”是指相邻两个体元素以此面作为公用面。“按算法生成”是指在许多情况下,一个曲面由输入的线生成比较困难,而由点如用TEN(四面体格网)进行构造生成一个曲面。“插值”是对不均匀体按已有点进行插值用来表达不均匀体的空间特性,这些点按相邻关系连接组成一个空间树形。http;//www.othermap.com测绘信息网

三、拓扑关系的构造及生成原理

上面所给出的数据结构中,反映出的基本拓扑关系如下: 点线关系(点为线结点,线由点构成);点面关系(面由点通过算法生成,面包含点);线面关系(面由线拟合生成,线为面的结线);面体关系

http;//www.othermap.com测绘信息网

(体由面构成,面为多体公用面)。隐含的关系有:线与线关系(多线共用结点——相交);面与面关系(多面共用结线——相交);体与体关系(多体相邻或包含)。http;//www.othermap.com测绘信息网

这些关系基本上能全面反映已有的空间拓扑关系,由于以点、线、面、体基本对象构建,故适合于面向对象的空间操作与分析。按上面数据模型有如下拓扑关系自动构建过程,(以输入数据为例,基本元素通过指针操作而非普通变量):

到目前为止按矢量的方式,人们输图时是以点为基本元素输入的,因而在建立拓扑关系之前,已有的基本元素只有点,所以拓扑关系的自动建立由点元素开始(在这里仍然沿用图层的概念,同一类元素看作一层,并以层来管理同一类元素)。 1.点的输入

每输入一个点,如属于某个面,按坐标点类处理并在其关系表中加入特征值或编码值,也可以是预先给定的面的编号,如属于某条线则进行线的生成。 2.线的生成

加入一个新点,将此点加入到线的点表中,起点和终点作为结点加入到线的结点表中。http;//www.othermap.com测绘信息网 3.线线关系的建立

每生成一个新线,与已有的所有可能相交的线进行求交计算:交点作为结点加入到有关线的结点表中,新线也加入到有关结点类元素的线表中。

4.面的生成

对于规则的面(如平面)按二维处理。对于不规则的面,由一系列点按一定算法生成(用分块B样条曲面合成法或分块Bezier曲面合成法,也可以用多曲线拟合法(适于直接由二维GIS中已有的等值线构造曲面)),生成后的曲面再进行填充、光照效果等处理后即可用来较真实地反映三维GIS中曲面实体。 5. 线面关系的建立

显然通过面的生成,如果线在一个面内,线面关系已经存在;当一条线不属于某一个面时则要进行线面关系的处理。经过复杂的计算可以确立如相交、相离等关系。对这种复杂关系使用相应的成员函数动态地建立相应的关系表(对已有的拓扑关系进行进一步完善)。 6.面面关系的建立http;//www.othermap.com测绘信息网

确立面面关系,主要是进行面面求交计算,得到新面与结线。在结线的面表中加入有关面元,在面元的结线表中加入有关线,这样进一步确立了线面关系,也得到了面面关系。 7. 体的生成

类似于二维中面的生成,按算法搜索闭合空间即构成一个体元。体元生成后体与面的关系也已经存在。这时可以进行体与体之间的拓扑关系(如包含关系)的生成。这里体的搜索按空体进行,对于实体用填充方法由空体得到。http;//www.othermap.com测绘信息网

四、空间数据库的建立

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

http;//www.othermap.com测绘信息网 面向对象的三维矢量GIS数据模型及 拓扑关系的建立 孙 敏① 唐小明② 赵仁亮① (①中南工业大学资环建院 410083) (②中国林业科学院资源信息所 100091) 【摘 要】 本文针对三维GIS拓扑空间关系的复杂性,提出了以表为基本单元的面向对象的数据模型,这种数据模型能表达网状的空间拓扑关系,较直观地反映了三维GIS中复杂的空间拓扑关系。文中还对这种结构的拓扑关系和空间数据库的动态建立作了说明。 http;//www.othermap.com测绘信息网 一、引 言 到目前为止,三维GIS一直处于理论研究阶段,虽然有三维GIS系统问世,但其功能远远不能满足人们分析问题的需要,原因主要是三维GIS理论不成熟,其拓扑关系模型一直没有解决

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com