(系统工程专业论文)三维场景中查询功能的设计与实现.pdf_第1页
(系统工程专业论文)三维场景中查询功能的设计与实现.pdf_第2页
(系统工程专业论文)三维场景中查询功能的设计与实现.pdf_第3页
(系统工程专业论文)三维场景中查询功能的设计与实现.pdf_第4页
(系统工程专业论文)三维场景中查询功能的设计与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(系统工程专业论文)三维场景中查询功能的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 查询是各种决策分析中用户最经常使用的功能。三维地理信息系统中查询功 能的设计与实现对于用数字化的方式定量描述和研究人类所处的真实场景,并以 此为基础进行各种辅助性决策分析,具有关键性的意义。三维场景是三维地理信 息系统中人机交互的主界面,本文以实际应用为背景,结合用户的实际需求,对 三维场景中查询功能的实现机制进行了研究。 论文首先针对自主开发的三维地理信息系统中三维场景的特点,提出了实体 模型概念,将三维场景空间信息和属性信息有机地结合在一起,为查询功能的实 现奠定了基础。 论文重点讨论了查询功能的设计与实现。通过分析三维场景的数据特点和用 户需求,建立了三维场景中查询功能的组成模块。将三维场景的查询分为对地形 的查询及对地物的查询。地形的查询建立在d f a b i 数据结构的基础上。对地物的查 询采用了a c t i v e x 组件技术,使得原有二维地理信息系统的已有成果可以在三维 系统中重用,同时根据三维场景的特点新增加了三维实体拾取等模块,共同完成 对地物的空间一属性交互查询。运用组件技术进行开发,可以有效地保护已有投 资,显著提高开发效率。同时由于该查询组件的功能设计建立在实体模型的基础 上,因此可以将其应用到森林覆盖率分析等其他众多应用领域,以及用于网络环 境下w e b g i s 的开发中。 本文最后对下一步工作进行了展望。 关键词:三维地理信息系统:三维场景;查询;实体;空间信患 a b s t r a c t t h i st h e s i sc o n c e n t r a t e so nt h er e a l i z a t i o no fe n q u i r yf u n c t i o ni n3 ds c e n e ,t h e m a i ni n t e r a c t i v ei n t e r f a c eo f3 dg i s ,a si nm o s td e c i s i o ns u p p o r t i n gs y s t e m s ,e n q u i r y f u n c t i o ni sf u n d a m e n t a lt oat r u e3 dg i s i th e l p st od e s c r i b e 也er e a ls p a c ei na q u a n t i t a t i v ea n dd i g i t a lw a y , s o t h es y s t e mc a ns u p p o r td e c i s i o n - m a k i n g si nav a r i e t y o f e n g i n e e r i n g f i e l d s 1 1 1 et h e s i sm a k e sa r la n a l y s i so f t h ef e a t u r e so f t h e3 ds c e n e t h ee n t i t ym o d e ii s t h e np r o p o s e d ,w h i c hc o m b i n e ss p a t i a li n f o r m a t i o nw i t ha t t r i b u t e si n f o r m a t i o no ft h e 3 ds c e n e t h i sf o r m st h eb a s i sf o rt h er e a l i z a t i o no f e n q u i r yf u n c t i o n t h et h e s i sp u t sa ne m p h a s i so nt h ed e s i g na n di m p l e m e n t a t i o no ft h ee n q u i r y f u n c t i o ni n3 ds c e n e t h es t r u c t u r eo ft h ee n q u i r yf u n c t i o n si sd e s i g n e da f t e rt h e c l i e n t sd e m a n d sa n dt h ef e a t u r e so f t h ed a t aa r ea n a l y z e d i nt h i sw a y , e n q u i r i e si n3 d s c e n ea r ec l a s s i f i e di n t ot w ot y p e s :e n q u i r i e st ot e r r a i na n dt h o s e 幻s p a t i a lo b j e c t s e n q u i r i e s t ot e r r a i nb r ei m p l e m e n t e do nt h eb a s i so fd e md a t a s t r u c t u r e e n q u i r i e st o s p a t i a lo b j e c t sa r ei m p l e m e n t e db yc a l l i n gac o m p o n e n t w h i c hh a sb e e nd e v e l o p e db y u t i l i z i n gu s e f u lm o d u l e sa n di n f o r m a t i o ni nt h ee x i s t i n gt w o d i m e n s i o ns y s t e m n l e c o m p o n e n t i sd e v e l o p e di nd e l p h iu s i n ga c t i v e ) ( c o m p o n e n tt e c h n o l o g y n 地o t h e r m o d u l e so ft h ew h o l ee n q u i r yf u n c t i o n s w h i c hh a v et h ef e a t u r e st od e a lw i t h t h r e e d i m e n s i o n a ld a t a , f o re x a m p l et h et h r e e - d i m e n s i o n a le n t i t yp i c km o d u l e ,a r e d e v e l o p e db yv i s u a l c 什i ti sc o n c l u d e dt h a t b yu s i n gc o m p o n e n tt e c h n o l o g y , e n q u i r yf u n c t i o n si n3 dg i sc a nb er e a l i z e dw h i l em a k i n gf u l lu s eo ft h ee x i t i n g t w o d i m e n s i o no n e s m o r e o v e r , i tc a nb ew i d e l yu s e di no t h e rf i e l d s ,f o r e s tc o v e r a g e r a t ea n a l y s i sf o re x a m p l e ,a st h ec o m p o n e n ti sb a s e do nt h ee n t i t ym o d e l ,a n di tc a n a l s ob e u s e di nt h ed e v e l o p m e n to fw e b g i s k e y w o r d s :3 dg i s :3 ds c o n e :e n q u ir y :e n t i t y :s p a t i a i i n f o r m a t i o n 三维场景中查询功能的设计与实现 1 引言 1 1 问题的提出 三维场景的查询功能在三维地理信息系统的实现和应用中具有十分重要的 地位。三维场景作为三维地理信息系统与用户交互的主界面,三维场景查询功能 的实现,是使三维地理信息系统具有辅助决策支持能力,从而区别于其他虚拟现 实系统的重要特征。因为三维地理信息系统的实现,最终目的不仅只是为了提供 对现实世界的虚拟显示和浏览,更重要的在于它能够在实际生活、工作中为人们 的决策分析提供有力的辅助手段。在各种辅助决策支持功能中,查询是最基础的 和经常使用的功能。在现实生活中需要大费周折或花费很多时间的查询工作,在 三维地理信息系统中只需利用相应功能,轻轻一点,即可完成。如要查看某一地 区某一建筑物的名称,高度等属性信息时,需要经过很多部门,查看很多资料。 在三维场景中,只需用鼠标在建筑物上点击,建筑物的各种属性信息就可以显示 出来,同时建筑物的地理位置也一目了然。又如,对某一地区地形特征如高度, 地形面积等的查询,往往需要实地量测,时间周期很长。在三维地理信息系统中, 只需要用鼠标在三维场景中划定某一需要了解的范围,利用相应的查询功能即可 得到结果。查询的方法和查询的范围在很大程度上决定了地理信息系统相关软件 的应用程度和水平m 。三维场景中查询功能一旦实现,将会进一步拓展三维地理 信息系统的应用范围,使之在物业管理、数字化小区等新的应用领域有着良好的 应用前景。 三维场景豹查询功能对于“数字城市”的实现也具有重要意义。“数字城市” 是三维的、可视化的城市“m 。有关三维城市的研究一直是理论和应用研究中的一 个热点问题。在“数字城市”中进行的各种查询与三维场景的查询功能实现密切 相关。这是因为“数字城市”乃至“数字省”是由若干个相关场景或数字城市无 缝拼接形成的。“数字城市”中查询功能的开发将对“数字城市”在各个领域的 应用起到推动作用,使“数字城市”成为人们工作、生活中切实的辅助决策工具。 提出“三维场景查询功能的设计与实现”正出于大连市“数字城市”工程的 实际需要。在该项目中,实验室自主开发了二维地理信息系统,在实际应用中取 得了较好的效果。然而,由于应用需求的不断提高以及数据模型的限制,二维系 统已经不能满足人们的需要,因此一方面,需要在二维系统的基础上开发三维地 兰维场景中查询功能的设计与实现 理信息系统。三维场景查询功能的设计和实现正是其中重要的环节之一。另一方 面,由于二维系统的开发和应用已具有良好基础并且积累了大量有用数据,要求 在开发三维系统新查询功能的同时,有效借鉴和利用二维系统中的已有成果。软 件复用是软件开发中普遍存在的重要问题,对数字城市的实现亦具有十分重要的 意义。 本文以“数字大工”为例,系统阐述三维场景中进行查询所涉及到的问题, 查询的机制以及查询功能的具体实现过程。 1 2 相关研究综述 1 2 1 三维地理信息系统及其查询功能研究进展 在地理信息系统领域中,基于二维平面地图的研究和应用已经十分成熟,应 用范围涉及土地管理、电力、电信、城市管网、水利、消防、交通等多个领域c w 。 但由于数据模型的限制,二维系统存在着自身难以克服的缺陷。首先,二维系统 采用点、线、面等平面图形对实际事物进行描述。由于客观世界是三维、立体的, 导致了其描述的不完全性和大量的多维空间信息无法利用。同时,由于二维系统 是基于抽象符号的,描述的虚拟现实景观十分抽象,或不具备景观概念,限制了 其在小区物业管理、旅游等多个领域的应用开发。更为重要的是,二维系统不适 合“数字城市”的发展要求n ”。“数字城市”要求对建筑物、绿地等典型的城市 空间对象进行三维可视化的描述,二维系统在这方面却无能为力。尽管以二维系 统的图形表达和数据组织为基础的各种查询功能已十分成熟和完善n ”,可以完 成点查询、范围查询等多种查询功能。但由于二维系统的自身缺陷,限制了其在 上述各个领域的应用。另外,由于数据类型单一,二维系统不具备地形、地貌等 概念,不可能完成对地形的三维可视化查询等操作。 三维地理信息系统是目前国内外学术界研究的热点n “m ,它的提出一定程度 上是为了克服二维系统的缺陷,从而满足实际应用的需要“”“。三维地理信息系 统能更真实、直观地反应客观世界,并且具有更加丰富的数据类型。三维地理信 息系统中的查询功能结合三维立体可视化技术,将为人们的分析决策提供更强的 真实感和立体感以及更加丰富的信息支持,并在进一步的决策分析、场景漫游等 方面提供必要信息“- “。 与三维地理信息系统相关的研究取得了积极的进展,目前的研究主要集中在 兰维场景中查询功能的设计与实现 三维可视化m 1 1 。,三维建模n 一,等方面,实现的功能主要包括三维场景可视化,实 时漫游、多角度旋转显示、三维模拟飞行等。并有一些成功的软件产品问世,如 三维动画软件3 d sm a x 等。对于三维地理信息系统中的查询功能,不同学者分别 从不同角度进行了研究。例如,文献 2 6 针对中国大陆岩石圈的实际应用提出了 地学断面域的空间一属性交互查询;还有学者针对空间数据的特点提出了专用于 空间信息的查询语言;也有一些学者将时态概念加入三维空间中,设计了针对 时空查询的可视化查询语言s t o i n g 。国外一些学者提出将a g e n t 技术引入查询 功能中,通过a g e n t 提供的专业领域知识辅助用户完成各种查询m ,。还有一些国 外学者正在研究将空间目标的历史变更引入空间数据库中,并研究其上的查询操 作。“。也有一些学者试图通过接近人类的自然语言及模糊语言进行对空间信息的 查询”。上述研究或理论性很强,或研究只针对某一特定领域,对于三维地理信 息系统中查询功能的设计与实现缺乏系统的研究。在自主开发的三维地理信息系 统中,系统的功能在三维场景可视化浏览,实时漫游等方面已取得了初步的成果, 但只限于三维景观的虚拟再现、测览等功能,不具备任何的查询分析手段。 因此,研究如何在三维场景中进行查询非常必要,也是本文的主要目的。 1 2 2 查询功能相关研究综述 在三维场景查询功能的设计和实现中涉及到两个重要问题: ( 1 ) 空间数据 的组织和管理。( 2 ) 空间数据的可视化表达。现有研究作了较深入的分析,为 系统研究三维场景查询功能的设计和实现提供了基础。 空间数据的组织和管理是查询功能实现的基础。目前,对于空间数据的组织 多采用文件方式和关系数据库扩展方式m ”。采用文件方式可以存储更加丰富的 空间信息,而且存储格式可以根据需要灵活定义。但数据安全性和共享性等不如 专门数据库管理系统。采用关系数据库扩展方式可以有效地解决数据共享机制及 数据安全等问题,它利用关系型数据库中交长纪录来存储非定长的空间几何信 息,如点、线、多边形等。但由于涉及到数据转换问题,因此数据的存取速度不 如采用文件方式。目前还有人提出用面向对象型数据库存储和管理空间信息“”。 它的基本思想是将空间信息和与空间信息相关的属性信息按照面向对象的观点 进行存储和组织。面向对象型数据库管理模式有效地组织空间信息和与空间位景 有关的属性信息,使得在其上的各种操作如实体查询等可以按照现实世界中的对 象观点来进行。这不但可以减轻程序的工作量,还可以对数据进行有效管理。面 三维场景中查询功能的设计与实现 向对象数据库理论是未来数据组织的发展方向。但由于面向对象数据库理论还未 成熟,理论远没有走向实用阶段m 。在本文中,三维场景的各种空间数据采用 文件方式进行管理,三维场景中的属性数据采用关系型数据库管理。 为了有效的连接空间数据和属性数据,为三维场景中进行的各种查询提供有 力的数据组织基础,在本文中,提出了面向对象的实体模型。对于实体模型的组 织将在下文中详细介绍。 在空间数据的组织和管理中还有一个重要方面,即空闾索引文件。由于空间 信息通常数据量大且多采用文件方式进行存储,因此,索引文件的建立就显得非 常必要。根据不同的应用目的和背景,索引文件的种类和建立方式各不相同。本 文中主要讨论与三维场景查询有关的索引技术。目前主要有k d 树、k - d b 树、 b s p 树、r 树、r + 树、h i l b e r tr 树、四叉树等空间索引技术m 。其中,k - d b 树、b s p 树、k - d 树、四叉树等是基于区域划分的。r 树、r + 树、i - f i l b e r tr 树 等是基于对象划分的。基于区域划分的索引方法的基本思想是将地理空间按照某 种方式进行分割,并将属于该区域的空间对象的指针或标识符记录下来形成索 引。对区域的划分可以采用多种方式,如棋盘式划分,递归式划分等m 。典型的 基于区域划分的索引方法是四叉树索引。它将已知区域逐层进行四等分,最终形 成完全四叉树索引或不规则四叉树索引。完全四叉树索引虽然存在冗余的叶子节 点及非叶子节点,但由于其完整性和规则性,可以建立基于顺序结构的内存索引。 不规则四叉树由于没有冗余节点,因此占用存储空间少,但由于要建立非线性的 内存索引结构,因此,实现算法相对复杂。基于区域划分的索引方法的缺点是同 一地理要素的几何部分可能被分割到几个相邻的单元中,导致了对象的插入和删 除较为复杂。另外,由于四又树索引是基于区域划分的,如果菜一空间对象的增 加,使得空间区域扩大,那么整个四叉树索引需要重新建立。但四叉树索引也有 许多优点,如建立简单,并且树的结构不会因为动态插入或删除空间对象产生变 动1 。基于对象的空间索引方法是直接针对地理空间中占据一定范围的几何要素 建立索引。典型的基于对象的索引方法是r 树索引。r 树的基本思想是将空阀目 标及索引空间用其最小包围矩形m b r 来近似表示,r 树中的非叶子结点存储对象 集合的m b r 及指向更低一级结点的指针。r 树的叶子结点存储单个对象的m b r , 以及指向空间对象的指针“”。r 树空间索引与基于区域划分所形成的空间索引方 法一个重要的区别是r 树空间索引中兄弟结点对应的空间区域可以互相重叠,这 样的特性使r 树比较容易进行删除和插入操作m 。为了保证插入或删除后r 树仍 能保持平衡,在进行r 树的插入和删除时。可能涉及到节点的分裂和压缩操作m 4 三维场景中查询功能的设计与实现 由于空间区域之间有重叠,对于用户指定的某一查询空间,可能要对多条路径进 行搜索后才能得到最后的结果,因而导致了空间搜索效率的降低。为了克服由于 索引空间重叠引起的查询效率低下的缺点,提出了各种基于r 树的改进算法。 如r + 树等。在r + 树中,兄弟结点对应的空间区域没有重叠,因此这样的空间划分 可以使空间搜索效率提高,但由于在删除和插入地理对象时要保证兄弟结点对应 的空间区域不重叠,使得删除和插入操作的效率降低。总之这类索引结构需要解 决的主要问题仍然是减少区域的重叠,提高搜索效率。 三维空间数据的可视化表达是三维场景中查询功能实现的前提。三维空间数 据可视化以三维空间数据的表示方法为前提。查询功能中涉及到的地形分析、目 标提取等操作与空间数据的表示方法密切相关。一般来说,对于三维空间数据表 达有基于体的表示方法和基于面的表示方法m “。体表示法力图对地物进行真三 维表达,典型的体表示法有结构立体几何法( c s g ) 和八分树等“t m 。结构立体几 何法的基本思想是预先定义一些原型如立方体、圆柱体等,通过原型的交、并、 差等布尔操作形成空间目标w 。八分树方法所采用的基本思想是递归地将每一非 同质的立方体区域等分为八个子区域,直至子区域同质m ,。空间目标由八分树中 被空阆目标完全占据的叶子节点构成。为了有效地表示空间目标,通常需要进行 编码。面表示法从物体外观对其进行描述,通过面一边一点的拓扑关系表示物体”“。 体表示法数据结构复杂,存储数据量大,适用于机械制造、地质分析等高精度的 专业领域。根据实际疲用需要,本文三维场景可视化中的地形、地物表达,均采 用基于面的表示方法。这样不但可以降低空间数据结构的复杂性,大大减少数据 存储量,同时可以满足实际的应用需求m ,。 1 ,2 3 组件技术及其在查询功能中的应用 组件技术为实现三维场景中的查询功能提供了有利的技术手段。组件技术是 继面向对象技术之后发展起来的一种新的软件工程技术。面向对歙技术允许自底 向上地从已有的基本对象类出发,构造新的对象类,因此使得软件开发具有较好 的适应能力。但由于面向对象技术中的软件复用仍然是源代码级的,不具有跨编 程环境和操作系统的能力,用一种编程语言开发的面向对象程序很难在其他开发 环境中重用。组件技术是比面向对象技术更加高级的软件工程技术。它使得软件 系统的开发可以像硬件那样,通过不同部件的组装与集成完成m w 。基于组件技 术的系统开发具有以下优点:( 1 ) 可以避免不必要的重复设计,提高软件重用率, 减少软件开发的成本和周期,提高软件产品的质量,有效地保护已有投资( 2 ) 组件技术使开发的系统结构灵活,便于维护和升级。( 3 ) 组件技术使得开发者可 以将更多的注意力放到新的业务流程和业务规则上。随着软件生产的社会化和计 算机系统的整体发展,软件生产越来越趋向于标准化,组件化,越来越重视对己 往优秀成功经验的重用。 目前流行的组件模型主要有:o m g 的分布式标准c o r b a ,m i c r o s o f t 公司的 c 0 m d c o m ,s u n m i r c r o s y s t e m 公司的j a v a b e a n s 组件模型。c o r b a 是由o m g 组织 联合推出的分布式对象技术规范,它的底层结构为对象请求代理o r b 。c o r b a 采 用i d l 进行描述,并提供了其到c ,c 抖等语言的映射机制。j a v ab e a n s 组件模 型包含组件和容器两个基本要素,并通过属性保留其状态,激发事件并经过其方 法为别的对象提供服务。它可以被嵌入到本地的j a v ab e a n s 容器,可以被包裹 成a c t i v e x 对象,也可以被c o r b a 环境调用。c o m d c o m 是w i n d o w s 对象的一个 二进制标准,建立该标准的目的就是使得用不同语言编写的代码可以通用。它的 基本思想是将复杂程序分解为独立的、可重用的软件单元,并允许在异质系统和 网络中创建和使用这些可重用对象。d c o m c 伽通过m i c r o s o f t 的接口定义语言 ( m i d l ) 描述和发布自己的服务,通过系统注册表定位服务器对象并提供对象引 用。对象间可以通过接口相互通信,与编写他们的语言和平台无关。 在本文中,原有二维地理信息系统及三维地理信息系统各功能开发均是基于 w i n d o w s 平台。由于二维系统的良好基础,三维场景中查询功能的开发可以借鉴 二维系统的已有开发成果。组件技术为软件升级,代码重用提供了很好的手段。 与另外两种组件模型相比,c o m d c o m 组件技术比较成熟,基于w i n d o w s 平台, 使用m i c r o s o f z 提供的强大支持工具,开发基于c 伽的组件比较容易。因此三维 场景查询功能的开发采用了基于c o m d c 叫组件模型的a c t i v e x 组件技术。 综上所述,三维场景中的查询功能研究涉及多方面内容,既包括三维场景中 的数据组织与数据管理,同时与三维场景中三维实体可视化密切相关。由于相关 二维系统中查询功能的研究具有一定基础,运用组件技术可以有效地借鉴二维系 统的已有成果。 1 3 本文研究工作及内容组织 本文的研究工作及研究思路:实现三维场景中地形空间信息查询和面向各种 地物的空间一属性交互查询。地形空间信息查询建立在d e m 数据结构的基础上。 三维场最中查询功能的设计与实现 地物的空间一属性交互查询利用组件技术实现。通过分析已有二维系统、以及三 维场景中查询功能的异同,采用组件技术将二维系统中的已有成果用组件技术进 行封装。对于三维场景中的实体信息提取和查询结果可视化等功能,由于三维实 体的不同数据结构,拟在三维场景中通过组件接口传递参数,用v i s u a lc + + 语 言单独实现。 本文的内容组织:论文的前半部分分析查询功能实现的基础,即三维场景的 数据特点,包括空间数据和属性数据等。并利用面向对象观点提出了实体模型。 在以上讨论的基础上,分析、设计t - - 维场景中的各种查询功能,并详细讨论了 其实现过程。 三维场景中查询功能的设计与实现 2 三维场景数据特点分析 为了更好的进行三维场景查询功能的分析与设计,本章从三维场景中地形及 各种地物建模过程出发,对其所描述的数据类型及数据结构进行分析。 由于基于二维矢量地图的研究与应用已经具有一定的基础,在实际应用中积 累了大量的二维矢量数据和属性数据。因此,三维地理信息系统中三维场景的构 建以二维矢量系统为基础,这样不但可以充分利用已有的数据资源,还可以有效 的提高系统开发效率。 已有二维数字地图为三维场景模型的建立提供了丰富的图形数据基础,如: 等高线与离散高程点,建筑地面的轮廓图形、名称及其楼层数,道路的中心线、 宽度、等级,桥梁的长、宽、高,河流、湖泊等的水涯线,植被、绿化地的范围 线等等。圈2 1 所示为“数字大工”二维矢量图: 图2 1 “数字大工”二维矢量图 f i 9 2 12 dv e c t o g r a p ho fd i g i t a ld u t 2 1 三维场景空间数据分析 三维场景中空间对象主要分为地形和地物两大类,地形是三维场景所特有 的。地形数据主要是d e m 数据。地物种类繁多,以地形为载体,主要包括建筑物、 道路、草坪、水系等多种类别。三维场景的组成如图2 2 所示: 三维场景中查询功能的设计与实现 图2 2 三维场景的组成要素 f i 9 2 2t h ee l e m e n t so f3 ds c e n e 为了有效地管理各种空间数据,将各种地形和地物以场景为单位进行组织。各种 地物以地形为载体,按照相互的依赖关系划分为一个个独立的场景。场景的组织 结构如图2 3 所示: 场景 于场景蝙码 地形信息 卜一d 阻 地形信 ;一地形纹理 卜一矢量数据 l 。一地物纹理 图2 3 三维场景的组织结构 f i 9 2 3t h eo r g a n i z a t i o no f3 ds c e n e 2 1 1 地形空间数据组织及数据结构 在三维场景中,地形的起伏用数字高程模型( d e m ) 来描述。d e m 数据作 为三维场景中空间数据的重要组成部分,为三维场景中对地形的空间查询和与地 形有关的辅助决策提供了丰富的便于操作的数据基础。关于地形的查询分析是三 维场景查询功能研究中的一个重要问题。 数字高程模型d e m 是d i g i t a l e l e v a t i o nm o d e l 的缩写,它是一定区域范围内 规则格网点的平面及高程坐标的数据集合,该数据模型从数学的角度描述了某一 区域地貌形态的空间分布。 三维场景中查询功能的设计与实现 d e m 数据作为地形数字化表达的有效数学模型,应用领域非常广泛。通过数 字高程模型,可以方便地查询有关区域内任一点的地形情况,计算高程值、查询 区域面积和土方工程量等。利用数字高程模型的三维立体显示,还可以进行地形 周围环境的分析计算,如两点的通视性判断,洪水淹模型分析等。 对数字高程模型d e m 的描述有不同的数据结构,比较实用的有正方形格网 结构( g r i d ) 、不规则三角网结构( t i n ) 、g r i d 与t i n 混合结构。这三种结构各 有自己的优势。根据不同的应用需求选择不同的数据结构。由于规则排列的正方 形格网除了每个格网点处的高程值以外,只需要记录一个起算点的位置坐标和格 网间距,而将每一个格网点与其它点之间的拓扑关系隐含在阵列的行列号当中, 因此,对于任意格网点的平面位置及高程值可通过矩阵元素的行列号经过简单运 算得到。同时,正方形格网d e m 存储量小,结构简单,操作方便。因此,在三 维场景中对d e m 数据的表达主要采用正方形格网( g r i d ) 结构,后面对地形的 查询都是基于g r i d 数据结构。g r i d 数据如图2 4 所示: 图2 4g r i d 数据结构 f i 9 2 4t h ed a t as t r u c t u r eo fg r i d d e m 数据在计算机外存中采用文件形式进行存储。本系统中与地形有关的文 件主要有两种类型:h g t 文件和a s e 文件。h g t 文件是二维系统中等高线高程点 赋值后形成的文件,主要记录了属于某一高程值的点个数及其坐标。如下所示: h g t 文件结构; 2 41 9 1 8 01 2 6 1 5 0 t 9l 1 0 1 6 24 1 7 9 2 2 01 1 1 5 ,4 81 0 6 1 0 6 2 4 1l 2 9 7 8 01 2 3 4 2 6 通过对h g t 文件所描述的等高线数据插值,形成d e m 数据,在本系统中以 1 0 三维场景中查询功能的设计与实现 a s e 文件表示。在a s e 地形文件中,主要记录了规则格网的起算点坐标,格网间 距,及格网点高程值等信息。 a s e 文件结构: n c o l s1 2 6 n r o w s1 1 7 x l i m i n9 1 8 0 y l l m i n 9 0 0 7 x l i m a x 1 3 5 1 _ 9 3 y l i m a x 1 2 6 1 5 0 z m i n 1 3 0 0 z m a x 4 7 0 0 s n a p i 0 0 0 c h o o s e u n i t0 0 0 s c a e 1 0 0 0 0 0 c e l i s i z e 1 0 0 0 n o d a t av a l u e 一9 9 9 9 2 0 - 3 2 0 62 0 92 1 3 2 1 82 2 3 2 2 52 2 7 2 2 72 2 72 2 6 2 2 5 2 2 42 2 32 2 3 2 2 22 2 12 2 1 2 2 02 2 0 2 2 02 2 0 2 2 12 2 1 2 2 22 2 2 2 2 32 2 42 2 62 2 7 2 2 82 3 0 2 3 1 2 3 3 2 3 52 3 62 3 7 d e m 数据在内存中的数据结构采用三个一维数组来存储和表示,定义如下所 示: g l f l o a t * d t m x ,* d t m y ,* d t m z : 设正方形规则格网的行数和列数分别为:d t m d x 和d t m d y ,正方形规则格网 间距为c e l l s i z e 。因此对于任意给定格网点的行列值n 和m ,该点的平面x ,y 坐标为: d t m x n * d t m d x + m = ( ( f l o a t ) ) * c e l l s i z e : d t m y n * d t m ) x + m = ( ( f l o a t ) n ) 弗c e l l s i z e : 该点的z 坐标为:d t m z n * d t m d x + m : 2 1 2 地物空间数据组织及数据结构 三维场景中地物模型的建立首先是从数据采集开始的。二维矢量图中记录了 各种地物的位置坐标和垂直方向上投影的几何轮廓信息。不同种类地物从二维矢 量图中采集的几何轮廓信息也不同。采集的结果以o b t 文件进行保存。文件中 三维场景中查询功能的设计与实现 记录了各种地物的图元信息,包括表示几何轮廓信息的平面坐标序列以及地物所 属类别等。根据o b t 文件,即可构造一个个独立的三维实体对象。每一种地物 对应一种文件类型,如图2 5 所示: 图2 5 地物文件 f i 9 2 5t h ef i l et y p e so fs p a t i a lo b j e c t s 由于地物的数据结构与实体查询功能实现有密切关系,因此,下面从各种地 物建模过程出发,介绍地物的空间数据组织及其数据结构。 本文对三维场景可视化中地物的表达,采用基于面的表示方法,以面组成体。 一个最简单的建筑物可能包含四个侧面和一个顶面( 每个面由三角形或者四边形 构成) 。 三维场景中各种地物是建立在地形起伏基础上,因此,在建模的过程中要充 分考虑地形模型的高程信息。同时为了地形与地物相互融为一体,必要时还要对 地物所在处地形进行削减调整。i :j 【= 】于地物种类的多样性,各种三维模型的建立是 相当复杂的。出于简化的原则,本文只以几类简单常见地物为例进行研究,其它 地物的模型可同理建立。 ( 1 ) 建筑物的模型 以楼房为例,基于地形模型建立建筑物模型的过程如下: 计算建筑物的基准高程:首先根据建筑物各个顶点的平面坐标及各d e m 格网点平面坐标计算出每个顶点落于哪个d e m 三角格网内,并通过线性内插获得 该点的高程值,对于每个顶点都求出所在点的高程值,为了使建筑物底面保持水 平,可以通过取平均值或取最小值确定个值作为该建筑物的基准高程,设为 h 1 : 建立建筑物的侧面三角网:设建筑物的高度为h 2 ,加上基准高程,得到 建筑物模型顶面的高程h 3 ,然后建立建筑物模型侧面的三角网,具体过程如下: 设建筑物地面边界点为a ( x 。y ,z ) ,b ( x 。y ! ,z ,) ,c ( x “y ,z 。) ,d ( x 。,y 。z 。) , e ( x “y 一,z 。) ,f ( x s ,y nz s ) ,a b c d e f 为二维矢量图中代表建筑物几何范围的折线, 三丝堑墨! 奎塑些墼塑堡盐兰壅墨 一 加上前面计算的高度h i ,h 2 ,可以得到位于这些点正上方的一系列新的三维点 坐标,设为a ,b ,c ,d ,e ,f 。如图2 6 所示,点a 的平面坐标 与a 的相同。其z 坐标为z :z 。+ h i + h 2 ,其它点同理计算,可得到新的空间 折线。新的空间折线和已有建筑物的几何折线之间形成了建筑物的各个侧面。 图2 6 建筑物侧面示意图 f i 9 2 6t h es i d e so fb u i i d i n g 位于同一侧面上的四点从f f 组成一个平行四边形,沿对角线将它剖分 为两个三角形a a f 和a f f ,同样可以对平行四边形a a b b 进行剖分 得到两个三角形从b 和a b b ,如此类推,即可形成构造侧面的三角网。 构造建筑物顶平面。这里假设建筑物的形状是规则的,即建筑物不同高 度的水平截面相同。由于建筑物顶平面多边形的不规则性,同时由于多边形绘制 的速度以及任意多边形在绘制过程中的不稳定性,必须将建筑物顶平面多边形进 行三角形剖分,如图2 7 所示。为使问题简化,只考虑简单的凸、凹多边形情况。 具体思路如下:首先求出简单多边形的凹凸顶点,建立链表;然后逐次割去一个 权值最大的三角形,构造三角形网格,修改多边形顶点链表,并重新计算受影响 的顶点的凹凸性。重复这个过程,直到边界顶点链表为空时结束;最后按最大一 最小内角准则,通过局部变换,得到d e l a u n a y 三角剖分。 c 图2 7 建筑物顶面示意图 f i 9 2 7t h et o ps i d eo fb u i l d i n g j 下j i 火 1 舱。 三维场景中查询功能的设计与实现 值得一提的是,在上述建模过程中,各种几何图元是按照实体模型进行组织 建模的。也就是说把相互联系、具有现实意义的几何图元组织在一起,形成一个 独立、可操作的三维实体模型。对于基于实体的三维建模来讲,还有一个很重要 的步骤,即是实体i d 信息的提取。每一个实体的i d 信息唯一标识一个三维实体。 由于二维系统对几何图元及实体进行了较好的封装和管理,因此,在建模过 程中只须把图元所属的实体i d 信息从数据库中读取出来即可。建筑物的建模结 果以b l d 文件保存。在文件中,记录了每个建筑物的表面个数,坐标及纹理索 引等。对于文件中的每个建筑物实体,都具有唯一的标识i d 。由于纹理及其映 射等与本文主要内容无关,因此不作详细讨论。b l d 文件的组织结构如下所示: 建筑物i d3 表面数目5 纹理索引一1 t r i2 1 0 7 7 6 81 3 9 6 33 8 9 1 0 6 00 6 00 6 00 0 00 0 0 1 0 9 2 0 61 3 8 7 83 8 9 10 6 0 0 6 00 6 01 _ 0 00 0 0 1 0 9 1 5 51 3 0 3 03 8 9 10 6 00 6 00 6 0 1 0 01 0 0 1 0 9 1 5 51 3 0 3 03 8 9 10 6 0 0 6 00 6 00 0 00 0 0 1 0 7 7 6 81 3 9 6 33 8 9 10 6 0 0 6 00 6 01 0 00 0 0 1 0 7 7 1 71 3 1 1 43 8 9 10 6 0 0 6 00 6 01 0 0l _ 0 0 q u a 0 纹理索引一1 t r i0 q u a 1 1 0 7 7 6 8 1 3 9 6 3l8 9 10 6 00 0 00 2 00 0 0 0 0 0 1 0 9 2 0 61 3 8 7 81 8 9 10 6 0 0 0 00 2 01 0 00 0 0 1 0 9 2 0 61 3 8 7 83 8 9 10 6 00 0 0 0 2 01 0 0l _ 0 0 1 0 7 7 6 81 3 9 6 33 8 9 10 6 00 0 0 0 2 00 0 01 0 0 对应上述文件中对建筑物的描述,在内存中,以链表形式对建筑物进行管理, 建筑物的数据结构具体如图2 8 所示: 三雏场景中查询功能的设计与实现 l x ,y ,z 坐标 l 一 颜色属性 l 一 纹理坐标 l 一法向量坐标 脚 r _ 一三角形数日 l 一四边形教目 l 一 点的数目 卜一袭面纹理索引 f到三角形的指 广一针 副四边形的指 针 三角形 一劐三顶点指针 衰面数日 建筑物i d 到面的指甘 四边形 l 一到四顶点指针 建筑群 r 一建筑暂数目 到建筑物的指 r 一针 图2 8 建筑物的数据结构 f i 9 2 8t h ed a t as t r u c t u r eo fb u i l d i n g ( 2 ) 绿地模型的建立 绿地模型一般具有明确的边界,且大多紧贴地表。它的构造过程比较简单。 对于相对地面有一定高度的灌木类植被,可以按照简单建筑物的方法进行建立。 最后形成绿她的实体模型。对于紧贴地表,与地面的相对高度忽略不计的草地等 植被模型,可以通过专门的处理程序计算出落入二维边界线内的d e m 三角网,并 把这些三角形加入绿地模型的空问几何信息中,对于边界线穿越的d e m 三角网, 需要重新对该三角形进行划分。最后将划分后边界线内的三角形加入绿地模型的 空间,l 何信息中。无论采用哪种方法,最后都形成了绿她模型的空间几何信息文 件( g r a 文件) 及相应的绿地实体模型。由于绿地模型的文件结构及数据结构 与建筑物模型相似,这里就不再介绍了。 ( 3 ) 道路模塑的建立 道路类型的地物是典型的带状地物。它的构造过程如下: 根据道路的中心线信息,依次计算出中心线上与相邻两点连线平行的左边界 线及右边界线,然后用与中心线段垂直的线段将其封闭成多边形。 图2 9 道路曲面示意图 f i 9 2 9t h es u r f a c eo fr o a d 然后按照建筑物建立的方法,建立道路模型。 最后形成的道路文件是以扩展名为r a d 的文件进行表示的,它用一系列曲 面描述道路信息。每条道路具有唯一标识i d ,对于每条道路记录它所含的表面 个数,每个表面的坐标及纹理索引信息等。 道路i d4 表面数目1 纹理索引一2 q u a 1 8 1 4 3 81 2 3 2 0 21 9 1 60 5 00 5 00 5 0 0 0 00 0 0 8 8 6 6 7 1 2 3 3 1 11 9 1 60 5 00 5 00 5 01 0 00 0 0 8 8 6 5 11 2 4 3 2 51 9 1 60 5 00 5 00 ,5 0l _ 0 01 0 0 8 1 4 2 31 2 4 2 1 61 9 ,1 60 5 00 5 00 5 00 0 01 0 0 在内存中,道路的数据结构如图2 1 0 所示: b 道路i n 路面卜一 表面数目 道路粪 卜l - :焉e :=e = :针到四边形指针l 路的纹理标识l 一到道路的指针 图2 1 0 道路数据结构 f i 9 2 1 0t h ed a t as t r u c t u r eo fr o a d ( 4 ) 水系模型的建立 水系模型的种类很多,有的平面几何信息里面状,如湖泊,海洋等。有的呈 带状的,如河流等。对于呈面状水系模型的建立,其方法与简单建筑物的建立方 法相同。对于呈带状水系模型的建立,其方法同道路模型的建立。对于线状水系 模型的建立,只要直接从d e m 得到线上各点的高程信息即可。下面以河流为例, 介绍文件的组织形式。河流文件以r i v 文件表示。它描述地形上的河流信息。 它以一系列曲面描述一条河流的几何图形。一条河流可能含有多个曲面,这些曲 面组成一条河流,每条河流具有唯一标识i d 信息。 例如:某河流的几何图形信息为; 三丝堡墨主壅塑堡堕箜塑量墨墨一 河流i d2 表面数目2 纹理索引- 4 q u a l 5 2 63 83 1 l _ 9 1 1 3 0 002 70 5 40 7 8 0 0 00

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论