城市三维建模标准CityGML与KML的比较

2017-11-20 15:43王许辉吕肖飞
电脑知识与技术 2017年26期

王许辉+吕肖飞

摘要:随着数字化城市概念的推广,城市三维建模成为近几年研究的热点,它对城市规划与管理具有重大的意义。该文首先简单介绍了城市三维建模,然后对城市三维建模中两个关键的标准CityGML与KML进行了介绍,最后从坐标参考系统、拓扑描述、细节层次描述和对于复杂对象的分解处理4个方面对这两种标准进行了比较分析,以便使用者选择合适的方式实现城市三维建模。

关键词: 城市三维建模;CityGML;KML

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)26-0013-03

Abstract: With the popularization of the concept of digital city, urban 3D modeling has become a hotspot in recent years, which is of great significance to urban planning management.Firstly, this paper introduces three-dimensional modeling of city, and then introduces two key standard CITYGML and KML in urban three-dimensional modeling. At last, the two standards are compared and analyzed from 4 aspects of spatial reference system, topology , levels of detail and decomposition processing for complex objects, so that users can choose the appropriate way to build the three-dimensional modeling of city.

Key words: Urban 3D Modeling; CityGML; KML

城市作为人类聚集稠密的区域,是具有交通环境、覆盖有一定面积的人群与房屋的密集结合体,它为人类生活提供了所需的生活空间,即城市空间。随着社会的发展,人口急剧膨胀,城市的规模也随之不断扩大,各项城市设施急剧增加,以至传统的城市管理模式很难满足其迅速发展的需要。因此,就催生出了“数字城市”的概念。现实世界是一个三维的世界,想要实现城市三维空间的表达与处理,建立城市三维模型是非常有必要的。传统的三维城市建模技术经过多年的发展已十分成熟,但绝大多数应用还只是停留在视觉方面的表达,并且各个三维模型采用不同的技术,没有统一的框架,不利于数据信息共享。在此背景下,国际标准化组织OGC(Open Geospatial Consortium,开放地理信息协会)推出了三维城市建模规范CityGML,KML也于2008年被OGC宣布为开放地理资讯编码。

1 城市三维建模

隨着城市的发展以及建模技术的逐渐成熟,许多城市都建立了自己的三维模型,用于城市的管理与规划。但是现在大多数城市三维模型只是仅仅把高度作为第三维度,并没有实现真正的三维,并且忽略了模型中的语义和拓扑关系,仅仅能够满足视觉方面的要求,不具备数据查询以及数据分析的能力,显然不能满足现代城市进程的需求。OGC是一个致力于为全球地理空间社区制定优质开放标准的国际非营利组织,它制订了一套空间数据表达和操作的抽象模型,下面简单介绍其中两种基本的描述标准CityGML和KML。

2 CityGML

CityGML(城市三维模型描述的标记语言)是由德国北莱茵河-威斯特伐利亚地区空间数据基础设施三维特定兴趣小组研发,致力于描述三维城市对象的共同语义信息[1]。CityGML是基于XML编码的,具有开放的标准化数据模型和交换格式,用于存储城市和景观的数字三维模型。它定义了描述城市中的大多数常见三维特征和对象以及它们之间关系的方法,它还为三维对象定义了不同的标准级别的细节,这允许用于不同应用和目的的对象表示,例如模拟,城市数据挖掘、设施管理和专题查询。CityGML被实现为GML3(Geography Markup Language,地理标记语言3)的应用模式。CityGML定义了一种用于描述三维对象的语义、几何、拓扑和外观的标准模型和机制,并定义了五级细节级别。包括主题类、聚合、对象之间的关系和空间属性的泛化层次。CityGML是高度可扩展的,数据集可以包括不同的城市实体,支持总体趋势,不仅可以对个体建筑进行建模,而且可以对整个场地、区域、城市、地区和国家进行建模。

3 KML

KML(Keyhole Markup Language)最初是在OGC之外开发的标准,由Google引入OGC的标准化。其目的是为了创建一个国际标准化语言,用于表示现有和未来的基于网络的在线和移动地图(2D)和数字地球仪(3D浏览器)的地理注释。

KML也是基于XML的语言,专注于地理可视化。地理可视化意味着在虚拟地球上的图形数据的表示以及到特定位置的移动和视图定义的导航。KML与HTML最相似,KML实例文档由地理浏览器以与Web浏览器中的HTML相同的方式进行解释[2]。

为了注释地球,KML允许在地球表面上定义象形图和文本标记。可以为表面表示指定叠加图像,并指定具有不同显示样式的2D和3D形状。对于单个KML对象,HTML说明可以与超链接和图像相关联。KML还可以通过网络加载额外的KML文档。这也包括加载具有纹理表面的计算机图形模型。与GML不同,坐标参考系统一设置为具有垂直数据WGS84 EGM96大地水准面的WGS84椭球的地理坐标。另外,KML在吸收和借鉴GML标准的基础上,删除了地理模型中有关拓扑关系的描述,精简描述元素,使用基于标签(tags)的语法格式来描述地理信息[3]。由于Google Earth等产品的带动现在很多GIS应用都采用此种格式进行地理数据的交换。endprint

4 CityGML与KML比较

CityGML和KML都是基于XML的标记性语言,都能满足数据共享的要求。城市三维建模是为了创建一个三维可视化的城市级别的空间数据库,用来满足城市规划中的分析和查询工作,以便于城市的规划和管理[6]。两者作为均能对三维模型描述的通用的国际性标准,CityGML和KML都有自己的考量,本文将从以下4个方面对CityGML和KML分析比较,以便使用者根据自己的需求进行选择。

4.1 坐标参考系统

点是空间描述的基础,坐标系可以用有序多元组来表示点的位置。坐标系统的定义是描述空间信息最基本入手点。只有当和它相关联的坐标参考系统被完全定义时才能确定坐标。GML对空间参考系统(Spatial Reference System,SRS)进行编码,是地理信息系统处理数据的前提。GML3定義了地理空间坐标参考系统和投影关系及其编码标准,便于不同应用系统参考体系间的互相转换。由于可以直接得到地理空间对象的属性数据,因此GML可以作为数据源对各种统计分析和空间分析程序进行分析。GML采用的空间参考系可以扩展并且与当前主要使用的投影类型和地理参考系相一致。同时GML允许用户定义自己的单位和参考系的参数[4]。

GML模式中的坐标参考系统定义了参考系统模式referenceSystems.xsd、基准模式datums.xsd、坐标系统模式coordinateSystems.xsd、坐标参考系统模式coordinateReferenceSystems.xsd、坐标操作模式coordinateOperations.xsd、数据质量模式dataQuality.xsd 6个GML模式文档,用于编码坐标参考系统和坐标操作。

6 个模式文档在内容、结构和依赖性上都有着密切的关系。这可以使GML直接引用独立的坐标系统并能按照要求转换为所需的坐标系统。例如,通过坐标操作模式的定义,可以实现两种坐标系间的相互转换,再通过数据质量模式,控制所转换转数据的精度,确保转换过程中的精确度。CityGML作为GML3的应用Schema,是城市三维建模描述的一种应用,沿用GML3的坐标参考系统,因此CityGML也支持不同坐标系的定义。

KML中坐标系统的定义相较于CityGML则相对简单,它要求数据必须定义到WGS84坐标系统下。这种方法可能会给使用者带来不便,比如,建筑行业通常使用的是工程坐标系,而使用者不可能都是使用工程坐标系的,那么经过KML的编码后坐标系就会发成变化,这会对使用者后期的工作带来不便。

4.2 拓扑关系

空间实体间的拓扑关系是进行空间查询、分析推理的基础,是GIS中空间实体之间最重要、最基本的关系之一。有研究者指出,实体间的拓扑关系等同于实体本身[5]。在地理建模中,拓扑主要用于加速几何计算。拓扑允许使用简单组合或代数算法以表示对象间的空间关系特征来进行构建。通过向城市空间数据库的应用中添加拓扑模型的描述,能够提高对空间信息分析和查询的效率。

在CityGML中,可以显式地表示拓扑。空间的每一部分可以仅被建模一次,然后由包括相同几何的所有特征引用,从而可以避免冗余并保持部件之间的明确的拓扑关系。CityGML也可以把拓扑模型与几何模型分开表示,用Xlink来进行链接。

KML中则省略了GML中关于拓扑关系的描述,通过地标的形式来标注地球上的点。虽然通过几何模型的定义,能够实现一些简单查询,但是较存在拓扑描述的CityGML来说在查询功能上则显得尤为不足。

4.3 细节层次描述模型

CityGML支持细节级别(Levels of Detail,LoD)的概念。在一个CityGML数据集中,一个对象可以在多达5个离散和明确定义的LoD中同时表示,从单纯的DTM到具有内部结构的建筑模型。这是通过特征类仅对特定范围的LoD有效才能实现的。例如,建筑要素类对于LoD1到4是有效的,而边界面要素类只对LoD2到4有效。CityGML每一个细节级别具体定义为:LoD0,地域模型(Regional model),描述了具有单独3D地标的2.5D的DTM数据,可以叠加二维地图或者是航空影像;LoD1,城市/场地模型(City/Site model),表现为没有屋顶结构的块状模型,其形状由棱柱型拉伸而成;LoD2,城市/场地模型(City/Site model),已经包括建筑物的屋顶模型和较大的延伸部分,如屋顶和楼梯;LoD3,(City/Site model)城市/场地模型,在LoD2的基础上增加更多细节的建筑模型;LoD4,室内模型(Interior model),在LoD3的基础上增加了对建筑物的室内的建模,即建筑内部结构、家具、门窗等设施都有详细描述。CityGML文件可以但是不是必须包含所有的层级,使用者根据自己的需求建立所需的层级。

KML中关于LoD的定义的出发角度与CityGML不同,KML侧重的是根据显示的分辨率来为用户呈现不同的可视化效果。KML规定几个分辨率的范围,当分辨率在相应的范围内时,给予相对分辨率下LoD的描述。KML对LoD的定义是利用KML中的LoD标签和Region标签来实现的。LoD标签用来给数据进行分层,Region标签用于决定物体在目标区域是否显示。简单概括来说,基于LoD技术的KML系统就是,只显示屏幕中的物体其他的物体暂时不显示,等到屏幕移动到时再显示,这样的好处是便于加载。相对于CityGML来说,基于KML的LoD技术相对简单,易于使用。

4.4 复杂对象分解处理方法

1) 重复模型的建模

在城市建模中会有比如路灯、树木等相同结构的实体重复的出现在不同的位置,若是对其重复的建模则会带来不必要的工作量并增加了存储空间的负担。在CityGML中只需对原型模型矩阵变换即可。CityGML中类似于路灯、树木等相同形状的物体可以分别用一个相同的原型来表示,在不同的位置对其进行缩放、平移和旋转操作即可实现[6]。endprint

2) 闭合表面

在城市三维建模时,由于地下隧道以及人行通道等建筑物不容易描述其空间形状,给建模带来了难度。ISO19107标准用“外壳”表达此类物体的空间部分。但是“外壳”被定义为闭合体,也就是说不存在从外部到内部的通道,这与现实不符。另外还存在一个问题就是地下通道和DTM的无缝集成问题,因为DTM要求不能存在空洞,也就是不能存在像地下通道入口这样的非闭合面。这一问题可用基于采样点的不规则三角网(TIN)来解决,即把地下通道和DTM相交的边当做DTM的边,相交面为两者共有。CityGML引进了“闭合面”的概念,对于非闭合的物体,用虚拟的闭合面缝合,比如地下通道和DTM的相交面。当计算地下物体的体积时,把它当做封闭的物体进行计算,当需要可视化时,把相交面设定为不可见即可。

在KML中则没有这两项技术的定义。

5 总结

本文对城市三维建模CityGML和KML标准进行了比较分析,两者都是基于XML,均具备数据共享和数据互操作的功能。在三维城市模型的背景下,CityGML提供了三维制图设计的初始数据;KML是用于交换和存储设计过程结果的格式,可以直接存储在三维浏览器中。CityGML和KML是互补的,而不是三维城市模型表示的竞争标准。CityGML用于存储和传输关于三维城市模型的语义信息,即城市空间中语义丰富的三维空间对象的交换。KML起到了GML的补充作用,因为GML较适用于模拟地理数据及其含义,而可视化方面较弱。KML注重于交换三维城市模型图形表达的格式,即设计过程的结果。

CityGML可以很好地解决静态模型,可以建立大规模的城市三维模型,这也是CityGML建立的初衷之一。而KML在动态模型上则有很好的表现。因此,如果建立三维城市模型在存储、管理和交换方面有较高的要求,则采用CityGML较为合适,特别是大规模的城市三维建模,若是使用者注重后期的应用层,则KML较为合适。

参考文献:

[1] 柳翠明.三维城市模型CityGML初探[J].城市勘测,2010(zl):5-7.

[2] 王志红,张亦汉,任金铜.KML語言标记规范及其与GML的交换研究[J].测绘标准化,2010,26(1).

[3] 袁俊超,苗放,李玉林.使用KML实现多细节层次技术[J].地理空间信息,2009,7(4):159-161.

[4] 万程辉,赵吉先,陶国强.地理标记语言GML的特性[J].江西测绘,2005(4):26-28.

[5] 虞强源,刘大有,谢琦.空间区域拓扑关系分析方法综述[J].软件学报,2003,14(4):777-782.

[6] 周宁,张军.基于CityGML的城市三维模型的描述方法[J].测绘工程,2010,19(4):50-55.endprint