CityGML文件格式

1 LOD3中,wall是由cuboid组成的,一个墙面包括8个面,分为wall-1, wall-2。。。wall-8,door也是,因此他们都是multisurface (一般由8个面片组成)。

在wall与window的操作中,window属于opening object,有的是在墙面中凹陷的,但是我们还是能够看到凹陷的部分,但是wall还是有8个面片组成,并无多余面片和顶点。如下图,可以看到凹陷的窗体,但是wall的面片的组织并没有想.3ds那样多了很多个三角形来表示。

2 从LOD3才开始有面片是roof还是wall的语义信息。

3 CityGML的文件有以 .xml/.gml 这两种文件格式为结尾的,其中包含坐标点的格式应该是

<gml:posList srsDimension="3"> 3499943.71541513 5399990.51365886 3.47825945823388e-013 3499995.98678034 5399992.61 -4.08743619019931e-012 3499943.71541513 5399992.61 3.47825945823388e-013 3499943.71541513 5399990.51365886 3.47825945823388e-013</gml:posList>

而以下是错误的:

<gml:pos>691664.961 5335057.8 547.084</gml:pos>
<gml:pos>691681.714 5335054.358 547.084</gml:pos>
<gml:pos>691681.714 5335054.358 521.554</gml:pos>
<gml:pos>691664.961 5335057.8 521.554</gml:pos>
<gml:pos>691664.961 5335057.8 547.084</gml:pos>

4 还要考虑 texture coordinate

从notepad++中的第三列开始

wall:

<bldg:boundedBy>
<bldg:WallSurface>
<gml:name>Wall-1</gml:name>

roof:

<bldg:boundedBy>
<bldg:RoofSurface>
<gml:name>Roof-1</gml:name>

6 boundarysurface (包括wall,roof,ground,都包含<gml:name>这一属性)和opening(包括window,door)是同等级的

boundarysurface在citygml的文件中是用boundedBy表示的,<bldg:boundedBy>

 在citygml.xml中opening是包括在WallSurface中的。

<bldg:WallSurface>
  <bldg:opening>

。。。。。。。。。。。。。

  </bldg:opening>
</bldg:WallSurface>

7 building与buildingpart:如果一个建筑物很简单,就只有一个building,如上图,当建筑物复杂时,如下图,就由building和buildingpart组成

 8 citygml中的模型坐标点也是由一个一个的三角面片组成,一个三角形有四个点,第一个点和最后一个点一样,为了重合。

原文地址:https://www.cnblogs.com/qingsunny/p/3164091.html