序言
CityGML 2.0.0版本和CityGML 1.0.0版本(OGC doc No.08-007r1)之间的重大变化:
• 表达隧道和桥梁表示的新主题模块;
• 用于建筑和建筑部件外壳语义分类的附加边界表面(OuterCeilingSurface, OuterFloorSurface);
• 建筑物和建筑部件中的底面轮廓和屋顶边界的LOD0表达;
• 表达城市对象相对于周围地形和水面位置的附加属性(relativeToTerrain, relativeToWater); • 测量值和属性集的附加通用属性。
• CityGML代码列表机制的重新设计(枚举属性现在属于 gml:codetype 类型,有助于提供枚举其可能属 性值的附加代码列表)。
将现有的CityGML 1.0实例迁移到有效的2.0实例,只需要将文档中的CityGML命名空间和模式位置值更改 为CityGML 2.0即可。
0. 引言
0.1. 动机
越来越多的城市和公司正在为城市规划、移动通信、灾害管理、三维地籍、旅游、车辆和行人导航、设施管理和 环境模拟等不同的应用领域构建虚拟三维城市模型。此外,在欧洲环境噪声导则(END,2002/49/EC)的实施 过程中,三维地理信息和三维城市模型发挥了重要作用。
近年来,大多数虚拟三维城市模型被定义为纯图形或几何模型,忽略了语义和拓扑方面的内容。因此,这些模型 几乎只能用于可视化目的,而不能用于主题查询、分析任务或空间数据挖掘。由于模型的有限可重用性抑制了三 维城市模型的广泛应用,因此必须采用一种更通用的建模方法,以满足不同应用领域的信息需求。
CityGML是一种用于表示三维城市对象的通用语义信息模型。CityGML可在不同应用程序之间共享,对于3D城市 模型的低成本、可持续维护尤为重要,这可允许相同数据在不同领域里的复用。可显著应用CityGML的领域包括 城市规划、建筑设计、旅游休闲活动、环境模拟、移动通信、灾害管理、国土安全、房地产管理、车辆和行人导 航、培训模拟器等。
CityGML是一种基于XML的格式地开放数据模型,用于虚拟三维城市模型的存储和交换。它是作为GML3的一个 具体应用模式实现,GML3是由OGC和ISO TC211发布的空间数据交换和编码的可扩展国际标准。CityGML基 于ISO 191xx系列、OGC、万维网联盟(W3C)、Web3D联盟(W3D)和结构化信息标准推进组织(OASIS)的多 种国际标准。
CityGML定义了城市和区域模型中最相关的对象类别及之间的关系,涉及到其几何、拓扑、语义和外观属性。“ 城市”的定义很宽泛,不仅包括建筑结构,还包括高程、植被、水体、城市家具等等。CityGML也包括了主题 类、聚合、对象之间的关系和空间属性之间的细节层次模型。CityGML同时适用于大区域和小区域,可以表示不 同细节层次的地形和三维对象。由于CityGML可以表示没有拓扑和语义的单一简单模型,也可以表示具有完整拓 扑和细粒度语义差异的复杂多尺度模型,因此CityGML可以实现不同地理信息系统和用户之间的信息无损交换。
0.2. 历史背景
CityGML自2002年起由SIG 3D的成员开发。自2010年以后,该小组成为GDI-DE的一部分。2010年之前,SIG 3D 隶属于北莱茵-威斯特伐利亚地理数据基础设施计划(GDI-NRW)。SIG 3D是一个开放的小组,由来自德国、英 国、瑞士和奥地利的70多家公司、政府部门和研究机构组成,致力于开发可操作的三维城市模型和地理可视 化。SIG 3D工作的另一个工作成果是提出了网络三维服务(W3DS),这是一个3D绘制服务,也是OGC正在讨论 的(OGC Doc. No. 05-019 and OGC Doc. No. 09-104r1)。
2005年,GDI-NRW的 Pilot 3D 项目首次成功实施并评估了CityGML的一部分内容。与会者来自德国各地,展 示了CityGML在城市规划方案和旅游上的应用。2006年初,EuroSDR的CityGML项目也开始关注欧洲的三维城市 建模协调。2006年6月至12月,CityGML在OWS-4的CAD/GIS/BIM专题中得到应用和评估。自2008年以来 ,CityGML(1.0.0版本)成为OGC的一个标准。
从这个时间节点开始,CityGML已经在全世界传播。德国和欧洲其他国家的城市使用CityGML提供了各自的三维 城市模型(仅举几个例子,柏林、科隆、德累斯顿和慕尼黑)。在法国,Bâti3D项目(IGN France)定义 了CityGML LOD2的一个专用文件,并提供了巴黎和普罗旺斯艾克斯、里尔、南特和马赛市中心的数 据。CityGML在荷兰的三维试点项目中也发挥了重要作用,支撑其三维地理信息标准和三维基础设施。欧洲的许 多城市,如摩纳哥、日内瓦、苏黎世、利沃登,丹麦的城市(LOD2和3,部分是LOD4)都使用CityGML LOD2 或3来进行数据的表达与交换。CityGML对欧盟委员会INSPIRE倡议的建筑模型(2.0版本)产生了重大影响,该倡议旨在创建一个欧洲空间数据基础设施,以互操作方式提供公共数据。在亚洲,伊斯坦布尔(LOD1和LOD2) 、多哈、卡塔尔(LOD3)和横滨(LOD2)的三维城市模型也使用CityGML进行数据的表达与交换。此外 ,CityGML在马来西亚的三维空间数据基础设施中起着至关重要的作用。
今天,许多商业和学术工具通过接口的方式来支持CityGML的使用。其中典型案例是三维城市数据库(3D City Database),该数据库是一个免费的开源3D地理数据库,主要用于存储、表示和管理由柏林理工大学提供 的Oracle 10g R2和11g R1/R2+的虚拟三维城市模型。它完全支持CityGML,并附带了一个用于导入和导 出CityGML模型的工具。此外,柏林技术大学还提供了一个用于处理CityGML模型(citygml4j)的开源Java类 库和API。Safe软件公司的转换工具FME(要素操作引擎)是ESRI的ArcGIS交互性扩展的一部分,它也具 有CityGML的读写接口。同样,Bentley Systems的BentleyMap等CAD工具,以及CPA Geo Information 的SupportGIS等GIS工具也提供CityGML的读写接口。目前部分3D查看器(都是免费提供的)也为CityGML提供 读取接口。例如,波恩大学的Aristoteles Viewer、Autodesk 的 LandXplorer CityGML Viewer(studio版本 非免费)、KIT Karlsruhe的FZKViewer for IFC and CityGML以及Bitmanagement Software GmbH的BS Contact(通过地理空间扩展工具BS Contact Geo提供了CityGML插件)。关于CityGML转换工具正在日渐增 多。如有需要,可访问CityGML的官方网站 http://www.citygml.org 以及 http://www.citygmlwiki.org。
0.3. CityGML 2.0 新功能
CityGML 2.0是针对CityGML国际标准1.0版本(OGC Doc. No. 08-007r1)的主要更新,为CityGML的主题模型引 入了大量的新增内容和新功能。修订版最初计划是对1.1版的一个小更新。修订过程的主要努力是确保在概念模 型成名和CityGML实例文档层面的向后兼容性。然而,某些更改无法按照 OGC政策(参见OGC文件 No.135r11 )里关于小修订和向后兼容性的要求进一步实施。因此,考虑到CityGML社区的更新需求,将主要版本号更改 为2.0,以符合OGC版本控制策略。
CityGML 2.0版本以下意义上向后兼容1.0版本:每个有效的1.0实例都是有效的2.0实例,前提是需要将文档中 的CityGML命名空间和模式位置更改为对应的2.0名称,因为CityGML版本号编码已在源码中更新。
以下条款概述了CityGML2.0的新增功能。
新主题模块:桥梁和隧道
桥梁( Bridge )和隧道( Tunnel )是城市和景观模型中的重要对象。它们是交通基础设施的重要 组成部分,通常是城市的标志性建筑。CityGML1.0一直缺乏专门用于桥梁和隧道的主题模块,因此必须 使用 GenericCityObject 作为代理来建模和交换此类对象(参见第10.12章)。CityGML2.0现在引入 了两个新的主题模块,明确表示桥梁和隧道。这是对CityGML主题模型的补充:桥梁模块(参见第10.4 章)和隧道模块(参见第10.5章)。
桥梁和隧道可以用LOD1–4表示,基础数据模型与 Building 模型具有一致的结构。例如,可以将桥梁 和隧道分解为多个部分,可以使用带有开口的主题边界面对壳体的各个部分进行语义分类,并且可以表 示装置以及内部建造的结构。这种连贯的模型结构有助于对语义实体的理解,并有助于减少软件实现工 作量。桥梁和隧道模型分别介绍了特定于桥梁和隧道的更多概念和模型元素。
对现有主题单元的补充
• CityGML核心模块(参见第10.1章) ◦ 对抽象基类 core:_CityObject 添加了两个新的可选属性: CityGML Core 中的 relativeToTerrain 和 relativeToWater 。这些属性以定性的方式表示地物相对于地形和水 面的位置,从而便于简单有效的查询(例如,查询地下建筑物的数量),不需要额外的数字地 形模型或水体模型。
• 建筑物模块
◦ LOD0 表示
▪ 建筑物现在可以使用LOD0对建筑底地面轮廓和/或屋顶边界进行表示。可以将现有的 二维数据和来自航空和卫星图像的屋顶重建数据易于整合到一个三维城市模型中。目前仅 限于水平的三维表面。
◦ 附件的专题边界表面
▪ 为了从语义上,对既不是水平墙面也不是屋顶部分的建筑外壳进行分类,引入了两个 附加的边界表面: OuterFloorSurface 和 OuterCeilingSurface 。
◦ 与专题边界表面的附加关系
▪ 除了 _AbstractBuilding 和 Room , BuildingInstallation 和 IntBuildingInstallation 的表面几何图形现在可以使用主题边界表面进行语义分类。例 如,对于建模为 BuildingInstallation 的老虎窗(译注:即斜屋顶上的天窗),有助于 对其屋顶和墙壁表面进行语义区分。
◦ 隐式几何的附加使用
▪ 除了BuildingFurniture外,隐式几何图形(参见第8.3章)现在还可用于表示 _Opening 、 BuildingInstallation 和 IntBuildingInstallation 。使用隐式几何后,这 些城市对象的原型可以在局部坐标系事先存储,并在三维城市模型的不同位置进行实例 化。
• 泛型模块(参见第10.12章)
◦ 泛型模块中添加了两个泛型属性: MeasureAttribute 和 GenericAttributeSet 。 MeasureAttribute 有助于表示测量值以及对所用单位的引用。 GenericAttributeSet 是任 意泛型属性的命名集合。它提供了一个codeSpace属性(可选),用来表示定义该属性集的组 织。
• 土地利用模块(参见第10.10章)
◦ LandUse 地貌类型的范围已经扩大,包括地球表面专门用于特定土地利用的区域和具有特 定土地覆盖的区域,无论是否有植被。
• 属性类、函数和用法(所有模块)(参见第10.10章)
◦ 为了协调 class , function 和 usage 的使用,对于在CityGML 1.0中提供了一个及以上 属性的所有要素类,都补充了该三元组。
对CityGML代码列表机制的补充
CityGML中,在代码列表里提供了类、函数和用法等枚举属性的数值。该代码列表可以由任何组织或社区根据其 特定的信息需求在CityGML模式之外指定。然而,这种机制并没有完全反映在CityGML 1.0编码模式中,因为 在CityGML 1.0实例文档中,相应的属性不能指向具有所用代码列表值的字典。这一点在CityGML 2.0中得到了纠 正:所有从代码列表中获取值的属性都属于 gml:CodeType ,遵循GML 3.1.1机制对代码表值进行编码(参见第 章10.14了解更多信息)。这个 gml:CodeType 为枚举属性添加了数值,该功能允许提供指向相应字典 的URI。
CityGML 2.0的变更日志
附件F中提供了XML模式组件级别的更改。
对规范文档的进一步编辑
• 细节层次模型(LOD)的精度要求(参见第6.2章) 第6.2章中提出的不同CityGML LOD精度要求是非规范性的。然而,CityGML 1.0中第6.2章的措辞与这一事 实不一致,因此已针对CityGML 2.0进行了澄清。
• 修改CityGML示例数据集(参见附录G) 附录G中提供的CityGML示例已被修改和扩展。现在,在示例中展示了用五种LOD等级表示的同一建筑模型 ,演示了不同LOD中建筑的语义和几何形态,以及使用XLinks在要素之间共享几何元素。数据集与CityGML XML模块包一起提供,可在以下网址中找到 http://schemas.opengis.net/citygml/examples/2.0/ 。
• 应用领域扩展使用的新示例(参见附件一) 附件一中增加了泛在网络机器人服务领域,该案例为使用应用领域扩展的第二个例子。