本文首先介绍了城市GIS数据的内容和特点,重点分析了海量三维模型及属性数据的组织体系结构,阐述关键问题的实现方式,初步设计了一套基于海量数据管理方法的数据流程。
1 引言
本文借鉴了GIS中传统的二维信息管理技术,并在此基础之上提出了一种管理海量三维数据的模式,初步设计了一套完整的基于对象关系型数据库的城市GIS数据管理引擎。
2 城市GIS数据内容与特点
相对于传统的二维GIS而言,三维数码城市GIS具有更强的表现力与实用性,而这是以增加管理大量的数据类型和数据量为实现代价的,主要包含了以下几大类:1)空间数据(Spatial Data)。空间数据是城市GIS的基础信息, 城市GIS功能的绝大部分将以空间数据为基础。城市GIS管理的空间数据经抽象后可以分为描述地物和描述地形的两大类,即描述地物类的二维矢量空间数据(Digital Line Graphic,DLG)、三维矢量模型数据,描述地形的数字高程模型(Digital Elevation Model,DEM)数据和数字正射影像图(Digital Orthophoto Map,DOM)数据;2)属性数据。属性数据是从现实内容方面对三维矢量模型数据的补充,相对于各个特定地物类的“形”而言,属性数据赋予了它们“意”的内容,描述了它们自身的特有性质,如建筑物可以拥有名称、高度、用途等属性信息;3)多媒体数据。城市GIS广泛应用于社会各行业、各部门,如城市规划、交通等,随着应用需求的进一步拓展以及网络技术的日新月异,如语音、图象等多媒体信息也开始用于数码城市GIS中,丰富了系统的表现形式,赋予了系统更加强大的表现能力。
城市GIS的数据内容及其数据量决定了它的应用特点。与传统的二维GIS相比较,数码城市GIS对数据组织与管理又提出了许多更高的要求,比如:1)矢量模型数据、DEM数据和DOM数据的三库一体化管理;2)多尺度模型的集成应用;3)从数据库到三维虚拟显示的快速转换,如:必须只在当前的视线范围内选择物体(金字塔或是圆锥内)和动态装载等都要求新的数据模型和有效的空间索引机制。
3 海量三维模型及属性数据的组织体系结构
3.1三维空间实体的描述模型介绍
模型是人们对现实世界的一种抽象,数据模型是现实世界向数字世界转换的桥梁。信息系统的数据模型决定了信息系统的数据结构和对数据可施行的操作,因此数据模型是GIS的灵魂和关键。三维空间数据模型是关于三维空间数据组织的概念和方法,它反映了现实世界中三维空间实体及实体间的相互联系,对三维空间数据模型的认识和研究在很大程度上决定着3D GIS系统的发展和应用的成败。其中,三维几何数据模型是三维CAD、三维GIS都需要首先解决的问题,目前,用来描述三维空间实体的模型主要有以下四种(李青元等,2000):1)结构实体几何模型(Construction Solid Geometry,CSG);2)边界表示模型(B-reps);3)面向对象模型;3)面向对象的可视化数据模型。这些模型各有优缺点,要应用到城市GIS的海量数据管理,还需要根据实际情况做结构上的调整和优化,以适应海量数据管理的应用特点。通过比较分析,并结合城市GIS软件设计的可复用性、可扩展性,本文将采用面向对象的可视化数据模型进行三维模型数据的组织。
3.2 三维模型及属性数据组织结构
城市GIS的数据内容包括DLG、DEM、DOM、三维模型及其属性数据,其中最主要的是三维模型及其属性数据,它们同时也是结构最为复杂的数据部分,涉及的数据量也非常巨大。三维模型及其属性数据的数据结构设计是关系到整个城市GIS存储数据量大小、漫游速度快慢以及表现逼真程度高低等的重要因素,本文利用了面向对象的可视化数据模型的设计思想将尽可能完整的数据信息包括进来,同时考虑到数据结构设计的精简性和易操作性。
1)三维模型数据结构
a)超组对象。对应面向对象可视化数据模型中的组对象。超组对象用于组合各种简单对象以表达复杂地物,并描述该复杂物体的整体特征,从严格意义上讲,它并不是实体的地物存储单元,因为它本身并不存储地物的矢量数据,因而不作为主要的数据存储实体。
b)体对象。在数码城市GIS中,体对象主要用来描述建筑物,针对建筑物结构复杂、通常包含多个单独实体的特点(例如一个大厦有主楼、副楼、底座等单独实体),同时为了获取最大的灵活性,本文在组织建筑物数据时采用体元对象描述每个单独实体,同时引入一个体组对象,用它来将其所有体元对象组合成一个具有整体特征和属性的体对象。体组对象和体元对象之间是一对多的关系。
c)面对象。它统一了二维面对象和三维面对象的数据描述,将其矢量数据部分集中到一个面片单元中。面片单元可以描述二维面数据也可以描述三维面数据。
d)线对象。它统一了二维线对象和三维线对象的数据描述,特别将三维管线也引入到线对象模型中,并加入了材质、颜色和管线半径等可视化信息,管线半径为零时则表示该线对象描述的是二维或三维的简单线对象。
e)点对象。它主要描述独立的点状地物,并在描述树、街灯等纹理点状地物的同时引进了CAD或3DS模型,将这些模型也作为点对象,并用一个定位点和方向来放置它,以增强点对象的可视化效果。因此,点对象既可用来描述简单的点对象也可通过CAD或3DS模型来描述复杂的对象
上述各个对象均有各自的数据结构,下面以点对象为例简要说明其特征。点对象的数据结构如下图所示:
2)属性数据结构
属性数据是三维模型数据的解释和语义描述,它是城市GIS必需的表现数据之一,缺少属性说明的三维模型有“形”而无“意”,从“形”的意义出发,可将三维模型数据分为五大类地物;但从“意”的角度讲,对其分类是以地物的地物类编码为依据的。地物类编码是用来标识和区分一类地物的最直接的说明,尤其在区分属性数据结构方面更是如此,相同地物类编码所标识的同一类地物将具有相同描述结构的属性数据。因此,一个城市所有模型数据中地物类编码的多少就决定了属性数据结构的多少,这些不同的属性数据结构主要是由城市GIS的用户来设计的。同时,基于系统实用性的考虑,对地物类编码的定义又作了适当的扩展,因为有时用户觉得严格意义上不同地物类编码的属性结构有相似性,例如都包含:名称,面积,备注等信息,用户可以将这几类不同地物类编码的地物归入同一个新的地物类编码,从而将它们的属性数据结构统一起来。
3.3数据库空间索引方法
在城市GIS中,空间索引一直是空间数据组织的重要内容之一,它是组织空间数据体系结构的基础,并为快速的空间数据查询提供了一个高效的途径。空间索引的性能优劣将直接影响到城市GIS的整体性能优劣。
对于空间索引,各国学者进行了较多的研究,最主要的成果如BSP树、K-D-B树、R树、R+树、CELL树、四叉树等。本文采用的第一种空间索引方法是类似R+树的索引,但针对城市GIS海量数据管理的特点对其组织作了一定的调整,利用它可以在空间快速的定位一个地物,提高了三维空间漫游时的系统效率。但是使用这种索引方式会导致在进行空间分析时需要设计复杂的算法才能执行较为复杂的查询操作,而这类算法通常由于复杂度较高且涉及大量数据,所以执行效率比较低;另外一方面,基于Oracle空间插件(Spatial Catridge)的空间索引提供了复杂的索引功能和简单的编程接口,不需要复杂的算法就可以实现分析功能,克服了前者的缺点,但Oracle空间索引的执行效率比较低,无法满足实时漫游的效率要求。为此,本文提出的数据组织方法中将采用这两种索引方法,二者相辅相成,既满足了实时查询时的速度要求也满足了复杂查询的效率要求。