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
5
从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中的模型坐标点也是由一个一个的三角面片组成,一个三角形有四个点,第一个点和最后一个点一样,为了重合。