CityGML是一种3D/CAD/BIM行业中常用的开放数据模型规范,可以用于描述城市与建筑物的3D地理信息。CityGML文件格式表示大规模城市数据集(LOD)和建筑物,可以为多种应用程序提供统一的数据结构。此外,CityGML还可以方便实现城市规划和市政项目的应用开发。
CityGML文件通常使用XML的格式进行保存。它包含了地理、建筑物和规划模型数据,几何数据和文本数据等。CityGML文件可分为两个主要部分:GMLheader和CityObjects。
GMLheader指包含文件信息、维护者信息、文件的投影信息以及空间参考的描述。而CityObjects是GML的最重要的部分,用于存储城市3D建筑物信息。分为单独的文件或多个文件存储,还有noneLOD、LOD1、LOD2、LOD3、LOD4等等几个级别。其中,noneLOD是指没有数据的格式,而其他级别则依次按照展示精度由低到高。
所有的CityObjects都包括一些基本属性信息,例如名称、地址、经纬度、高程等。此外,还包括几何体、语义标签等其他信息,如地面、建筑结构、地下室等。
CityGML在Open Geospatial Consortium(OGC)定义了一系列的规范。OGC是一个国际组织,致力于制定各种地理信息标准。CityGML的规范和标准下载链接为:https://www.ogc.org/standards/citygml 。
以下是一个简单的CityGML文件的示例:
<?xml version="1.0" encoding="UTF-8"?>
<CityModel xmlns="http://www.opengis.net/citygml/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd">
<cityObjectMember>
<bldg:Building gml:id="B1">
<gml:name>Seattle Building</gml:name>
<gml:description>This is a sample CityGML building model for Seattle.</gml:description>
<gml:boundedBy>
<gml:Envelope srsName="http://www.opengis.net/def/crs/EPSG/0/4326">
<gml:lowerCorner>47.6 -122.3</gml:lowerCorner>
<gml:upperCorner>47.7 -122.2</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<bldg:function>bldg:housing</bldg:function>
<bldg:usage>residential</bldg:usage>
<bldg:yearOfConstruction>1990</bldg:yearOfConstruction>
<bldg:roofType>slate</bldg:roofType>
<bldg:measuredHeight uom="m">120</bldg:measuredHeight>
<bldg:storeysAboveGround>20</bldg:storeysAboveGround>
<bldg:storeysBelowGround>2</bldg:storeysBelowGround>
<bldg:lod2Solid>
<gml:Solid>
<gml:exterior>
<gml:LinearRing>
<gml:pos>47.610830 -122.339791</gml:pos>
<gml:pos>47.610763 -122.339911</gml:pos>
...
<gml:pos>47.611102 -122.338547</gml:pos>
<gml:pos>47.610830 -122.339791</gml:pos>
</gml:LinearRing>
</gml:exterior>
</gml:Solid>
</bldg:lod2Solid>
</bldg:Building>
</cityObjectMember>
</CityModel>
该CityGML文件表示一个名为“Seattle Building”的建筑物,包含了建筑物的名称、描述、边界,以及一些基本属性(如年份、用途、层数、几何形状等)。