基于CityGML的城市三维模型的描述方法
2010-11-15周宁,张军
周 宁,张 军
(1.辽宁工程技术大学 测绘与地理科学学院,辽宁 阜新 123000;2.中国测绘科学研究院,北京 100039)
基于CityGML的城市三维模型的描述方法
周 宁1,2,张 军2
(1.辽宁工程技术大学 测绘与地理科学学院,辽宁 阜新 123000;2.中国测绘科学研究院,北京 100039)
传统的三维城市空间数据库中,在实现空间数据共享、互操作以及满足各应用者对数据的特殊要求方面存在着诸多未能解决的问题。通过对OGC标准中CityGML三维模型描述方法的研究,从LOD、坐标系统、拓扑定义方面进行分析研究,从而为城市三维模型信息的描述与管理提供更优的方法。
三维城市空间数据库;三维模型信息描述方法;CityGML;KML
21世纪的城市已进入信息社会,“数字城市”的概念已经提出。随着计算机技术的不断进步,传统的二维 GIS在各行各业中的应用已逐步推广。人们对 GIS的要求不再满足于平面的、静止的显示,而是追求立体的、动态的效果。因此,三维 GIS应运而生。虽然目前已有不少城市建立起了自己的城市三维景观模型,但大多数只局限于三维可视化角度,对三维空间数据的挖掘利用研究较少。因此,采用什么样的模型描述方法进行城市三维空间数据的组织,用于城市规划管理、交通管理、城市应急事件处置、城市灾害监测、环境监测等多方面的分析应用成为目前亟需解决的问题。
1 三维模型描述概况
迄今为止,已经有许多学者对城市三维数据结构进行了研究,并取得了一定的成果。但是针对目前城市三维景观模拟中模型的数据组织,大多还是仅把高度作为一个属性项“立”起来的2.5维。在现实的三维世界中,对于一个(x,y)对应多个 z值的情况,这种方法显得无能为力。随着城市化进程的加快,这些系统已无法满足人们对规划信息更深层次的需求,例如:在物业管理领域,需要建立数字式的三维小区来模拟该小区的三维景观,实现查看每一栋建筑物、每一层甚至每一户的属性(如:户主、建筑面积等一系列属性信息),实现二维 GIS无法达到的效果和功能。因此,对于城市三维模型的描述方法的研究成为影响城市三维景观系统功能的瓶颈。
Open GISConsortiurn(OGC)是开放式地理数据互操作规范而成立的一个非盈利性组织。它制定了一套空间数据表达和操作的抽象模型,并鼓励软件开发商和系统集成者采用OGC的标准,以最大限度共享资源及操作模型。目前在三维模型信息描述方面也出现了不少方法,下面简单介绍其中2种基本的描述方法。
1.1 CityGML(三维城市模型描述的标记语言)
CityGM L[1]是基于XML格式的用于存储及交换虚拟3D城市模型的开放数据模型。它在 Geography Markup Language 3(GML3)的基础上实现,GML 3是OGC和ISO TC211联合起草的可扩展的空间信息交换国际标准。CityGML中定义了城市中的大部分地理对象的分类及其之间的关系,而且考虑了区域模型的几何、拓扑、语义、外观属性等特征。其包括主题分类之间的层次、聚合,对象之间的关系、空间属性等。这些专题信息不仅仅是一种图形交换格式,而且支持将虚拟3D城市模型应用到各种不同领域中的复杂分析任务,例如仿真、城市数据挖掘、设施管理、主题查询等[2]。
1.2 KML(Google中用来描述地物的标记语言)
KML全称 Keyhole M arkup Language,是Google公司开发的、基于XML语法和文件格式的、用来描述和保存地理信息(如点、线、图像、多边形和3D模型等)编码规范。KML在吸收和借鉴 GML标准的基础上 ,舍弃地理模型中拓扑关系的描述,精简描述元素,使用一种基于标签(tags)的语法格式来描述地理信息。
KML与CityGML作为2种均能用来对三维模型进行描述的国际性通用标准,两者有自己建立出发点,单纯对两者进行比较是没有意义的,但是就当前要建立一个用于城市规划的城市空间数据库平台的目标入手,本文从信息表述的详略程度、LOD、拓扑表达、坐标系统等方面对CityGML和 KML进行了分析,通过比较,最终选择一种适合当前目的的三维模型描述标准来构建针对城市规划的城市空间数据库系统。
2 城市三维建模标准与规范
由于CityGML和 KML都是以XML为基础来延伸定义的标记性语言,因此在数据共享上都能满足要求。而对于数据库提供数据的能力来讲,应当从建立数据库的目的入手进行分析。其主要目的是建立一个基于三维可视化的城市级空间数据库,来满足在城市规划中的一些查询与分析工作。因此,本文将从以下几方面分别对CityGML与 KML进行分析研究。
2.1 细节层次描述模型(LOD)
不同应用领域,对数据的关注程度不同,对模型细节层次描述(Level Of Detail,LOD)也有所不同,有的仅需要简单结构的模型就能满足要求,但有的部门可能需要详细描述实体结构的模型。
在CityGML中,所有的模型可以分为5个不同的连贯细节层次(LOD),随着细节层次的提升可以获得关于几何及语义的更多细节信息。LOD0–地域模型(Regional model),表现为2.5D数字地形图;LOD1–城市/场地模型(City/Site model),表现为没有屋顶结构的“楼块模型”;LOD2–城市/场地模型(City/Site model),表现为包含贴图和楼顶结构的粗模;LOD3–城市/场地模型,包含更多细节的建筑模型;LOD4–室内模型(Interior model),可以“步行进入”的建筑模型,即建筑内部结构、家具、门窗等设施都能给与详细描述[3]。CityGML文件可以(但不是必须)同时包含每个对象的多个细节层次的描述。基于CityGML的LOD描述可以对某一类关注对象进行同一等级的描述,以便用户根据自己的需求对数据的描述程度进行选择。
相应的,KML中也有LOD的概念,但是其定义LOD的出发角度不同,注重的是根据显示的分辨率来给用户提供不同的可视化效果。即规定几个分辨率的范围,当分辨率在相应的范围内时,给予相对等级下的LOD的描述。下面一段代码是 KML中关于LOD的结构的定义,从中可以看到在 KML结构中,对LOD概念的着眼点是放在用户可视化上的,通过 KML中LOD的设置,用户可以设置某一像素范围用于显示某一特定模型。只有像素值在某个规定的范围内时,才会被按照对应的模型渲染显示出来。如图1所示,根据屏幕上用于显示该建筑的像素值来选择不同的模型进行渲染。
图1 KML中关于LOD的定义
CityGML是从信息描述的详细程度出发,对城市中的实体分别按照LOD0-4进行定义,随着LOD层次的增加,对实体几何、拓扑、语义描述的详细程度依次增加[4]。并且,LOD4描述在LOD3的基础上增加了建筑的内部结构,如内部的门窗、家具等室内设施。
下面是一段描述建筑物几何模型的CityGML文档,本文摘抄了CityGML标准规范说明中的一个描述房屋LOD2几何结构信息的例子中的部分代码,建筑物模型如图2所示。从文档中可以看出,在描述建筑物的组成部分时,分别从建筑的前面、后面、地面、屋顶等对包围建筑的面进行描述,将组成这些面的点坐标进行了详细的记录。
图2 CityGML中房屋的LOD2描述
同时对同一实体进行5种不同细节等级的描述,并存入数据库。不同的部门,根据自己的使用目的,从中选择适合自身需求精度的模型来使用。比如气象部门,只获得城市中建筑的LOD1的块状结构,就足以进行气象灾害对城市影响的统计分析了;在城市规划部门,可能还需要对每个建筑的门窗状况进行统计了解,那么LOD3甚至LOD4的模型描述更加适合其应用。CityGML中,不同LOD等级对各元素精度的要求不一样,例如LOD1模型中,对于点模型的精度要求在5m内,LOD2则要求在2 m内。将模型进行不同等级的描述,根据自身的需要,编写 Schema结构,从CityGML文件中读取所需要等级模型的描述。因此,按照用户的需求从数据库中提取数据,在使用中就避免了数据冗余的问题,但对数据库的存储量提出了较高的要求。
从另外的角度来看LOD应用在 KML和CityGML中的不同。比如作为房产部门,需要显示城市中所有建筑的详细细节描述的模型,虽然KML和CityGML均能实现对建筑的详细描述,但是由于 KML是根据显示的分辨率来渲染实体的,随着显示范围的增大,用户需要的建筑可能分布在不同的分辨率的范围,造成显示的模型不在同一描述等级下,使得不同细节等级的模型同时存在,如图3所示。所以有可能不能满足用户显示全部LOD4实体的要求。而CityGML就不同了,当用户有以上要求时,可以直接将定义LOD4的所有实体显示出来,不管实体在屏幕上显示的分辨率是多少,CityGML中也可以根据用户的需求同时显示不同等级LOD的描述模型。
由此可以看出,虽然 KML与CityGML中都有关于LOD的定义,但是两者的出发点完全不同,CityGML注重的是信息的描述,而 KML更加注重的是运行时的显示效果。从应用于城市规划目的的城市空间数据库建立的角度,CityGML中的LOD定义更能满足需求。
图3 CityGML中不同LOD模型
2.2 坐标系定义[5]
一个点的位置由一(组)坐标描述。只有当与之关联的坐标参考系统被完全定义时坐标才是确定的。而点是空间数据描述的基础,因此,坐标系统的定义是空间信息进行描述的最基本入手点。
空间参考系统(Spatial Reference System-SRS)是地理信息系统数据处理的基础。GML3封装了空间地理坐标参考系统、投影关系及其编码标准,以便于在分布式环境下不同应用系统中进行参考体系间的灵活互换。GML可以使用空间坐标系,并且有直接的属性数据。例如用 GML编码的一条道路可以有宽度、名字、路面信息等需要表示的信息,这些信息和空间地理数据紧密地集成在一起。这些属性信息对用户来说并不是必须的,用户只需提取感兴趣的信息。由于地理空间对象的属性数据可以被直接得到,所以 GML可以用来作各种空间分析和统计分析程序的数据源。GML所采用空间参考系是可扩展的并与目前所使用的主要的投影类型和大地参考系是一致的。另外,GM L还允许用户定义自己的单位和参考系的参数。
GML模式中的坐标参考系统模式定义了用于编码坐标参考系统和坐标操作的6个 GML模式文档,分别是:referenceSystem s.xsd参考系统模式;coo rdinateReferenceSystem s.xsd坐标参考系统模式;datum s.xsd基准模式;coordinateSystem s.xsd坐标系统模式;coo rdinateOperations.xsd坐标操作模式;dataQuality.xsd数据质量模式。
这6个模式文档在内容、结构和依赖性上都有着密切的关系,使得在 GML中可以直接引用独立的坐标系统,并能按照要求转化成想要的坐标系统。例如,通过坐标操作模式的定义,可以实现2种不同坐标系间的转换,再通过数据质量模式,对转换的精度予以控制,能够满足规定的精度要求,保证转换过程中的精确度。由于CityGML是 GML 3的一个应用Schema,是专用于城市三维建模描述的一种应用,本身还是来自 GML 3,因此 GML3中的一切功能CityGML中均能顾及到。即CityGML也支持不同坐标系的定义。
KML中关于坐标系统的描述则相对简单,它要求所有的数据必须统一到WGS84坐标系统下,因此,在整个 KML文档中,所有数据都是在统一的坐标系统下描述的。这种统一有时可能会给应用中带来一些不便。例如,建筑部门使用的通常是工程坐标系,而应用者使用的软件不可能都是针对工程坐标系的,通过 KML编码后,坐标系统全部变化了,使用者就无法再使用自己的数据和软件。
因此,就坐标定义来讲,CityGML中关于坐标系统的定义更加的宽泛,更能照顾用户使用数据的便利性。
2.3 基于CityGML的拓扑描述
拓扑关系是GIS中空间实体之间最基本、最重要关系之一,是进行空间查询、分析推理的基础[5]。在地理建模中,拓扑的最重要用途是加速几何计算。拓扑的构建允许通过使用简单的组合或代数算法来表达对象间的空间关系特征。通过适当的几何实现拓扑允许紧凑与无歧义地表达地理要素间如何共享几何。在城市空间数据库的应用中,通过拓扑模型的描述可以提高空间信息的查询效率,并能避免对拓扑相连的实体的重复定义[6]。
CityGML中支持拓扑模型的定义。与需要编码坐标的几何模型不同,GML拓扑模型编码抽象对象的结构化关系。GML当前定义的模型包含的拓扑类型主要用于模拟地理要素。GML3.0提供如下4种拓扑基元:Node、Edge、Face和 TopoSolid,每一个实现不同的几何对象,Node实现点对象;Edge用于可替换_Curve的对象;Face用于面对象;TopoSolid用于立体对象。CityGML支持将拓扑模型和几何模型分开表示,中间通过Xlink来实现链接。拓扑的描述在一些查询分析工作中相当重要[7]。
如图4所示,一所房子 Solid1与一个车库 Solid2相连,它们之间通过一个公共面相连。为了避免对公共面的重复定义,可以通过 Xlink来实现,下面一段代码就是关于使用Xlink机制对公共面进行描述的部分。
图4 CityGML中房屋的拓扑结构
KML中则省略了 GML中关于拓扑关系的描述,通过地标的形式来标注地球上的点。虽然通过几何模型的定义,能够实现一些简单查询,但是较存在拓扑描述的CityGML在查询功能上存在一定的缺陷。
2.4 复杂对象分解处理方法[8]
1)在城市中存在着大量的非封闭的三维实体,如地下通道、停车场等。虽然其外观结构是非封闭的,但有时需要计算出它们的容积(如在洪水灾害管理工作中,需要计算地下通道的盛水量),需要将其虚拟的给封闭起来进行计算。另一方面,对于位于地下的一些三维实体,还必须把其位于地面上的入口封闭起来,以避免在DTM中出现“漏洞”。针对这一要求,CityGM L中关于封闭面Closure surface的定义就能很好的解决这一问题。这是CityGML区别于 KML所特有的,如图5所示。
图5 CityGML中封闭面的概念
2)原型模型的定义与建模。在城市建模中发现,有一些结构相同的实体在不同的位置重复出现,如公交站、交通信号灯、树木等。为了提高建模效率,需减少建模次数,对某一模型进行一次建模,当重复出现时,只需要对模型的原型通过矩阵变化得到相应的模型,提高建模效率,并节省大量的存储空间。CityGML中像树木、交通标志等具有相同形状的物体可以分别用一个相同的原型进行表示。在需要处对这些原型进行缩放、平移和旋转等来实现。这也是CityGML区别于 KML,在城市建模中所特有的。
3 结束语
从城市数据库用户的需求出发,对 CityGML和 KML进行分析比较。虽然两者都是基于XML,在实现了WebGIS数据共享与数据互操作要求的情况下,就实际应用中能够解决问题的能力,CityGML较 KML而言,在三维城市空间数据库的建立中有一定优势。对于 KML来说,作为对GML3的简化,省略了其中关于拓扑及坐标系统的定义,在一定的应用范围内具有自身的优势。针对建立规划级的城市空间数据库的应用中较CityGML的某些特性稍逊一筹。当然,CityGML的发展还刚刚起步,还有许多不足,在今后的发展中需要进一步的完善。
[1]http://www.citygm l.o rg
[2]ALEXANDRA STADLER,CLAUS NAGEL,GERHARD KÖN IG,et al..Making interoperability persistent:A 3D geo database based on CityGML[J].Lee,Jiyeong/Zlatanova,Sis(Eds.)Sp ringer Verlag,2009:1-3.
[3]THOMAS KOLBE,SAM BACHARACH.CityGML:an open standard for 3D city models[J].2006(7):2-3.
[4]Adena Schutzberg,CityGML Comes of Age,Directions Magzine[J],2007(11):4-5.
[5]张书亮,闾过年,龚健雅 ,等.地理标示语言——Geo-Web基础[M].北京:科学出版社,2007.
[6]殷勇.城市地表三维环境中典型空间分析方法研究[D].北京:中国测绘科学研究院,2008.
[7]ALEXANDRA STADLER,THOMAS H.KOLBE,Spatio-semantic coherence in the integration of 3D city models[J],The 5th Interationall SPRSSymposium on Spatial Data Quality ISSDQ 2007 in Enschede,The Netherlands,2007(6):5-7.
[8]OpenGISCity Geography Markup Language(CityGML)Imp lementation Specification[S],Developed by the Special Interest Group 3D(SIG 3D),2002-2008.
[9]郭薇,陈军.基于点集拓扑学的三维拓扑空间关系形式化描述[J].测绘学报,1997,26(2):3-5.
[10]郭稚克.基于 GML的空间数据序存取模型研究[D].成都:四川大学,2004.
Research on 3D city models’representation with CityGML
ZHOU Ning1,2,ZHANG Jun2
(1.School of Geomatics,Liaoning Technical University,Fuxin 123000,China;2.Chinese Academy of Surveying&Mapping,Beijing 100039,China)
The traditional storage of the three-dimensional urban space database has so many difficult p roblem s at spatial data sharing,interoperability and meeting the needs of different app lications.In this article w e’ll analyze the CityGML standard w hich can describe this models f rom the LOD,coo rdinate system s,topology analysis of the definition of research to p rovided a better method to describe and manage the three-dimensional model fo r cities.
three-dimensional urban space database;method of descrip t three-dimensional model info rmation;CityGML;KML
P208
A
1006-7949(2010)04-0050-06
2009-09-07
周 宁(1985-),女,硕士研究生.
[责任编辑张德福]