王許輝+呂肖飛
摘要:隨著數(shù)字化城市概念的推廣,城市三維建模成為近幾年研究的熱點,它對城市規(guī)劃與管理具有重大的意義。該文首先簡單介紹了城市三維建模,然后對城市三維建模中兩個關(guān)鍵的標準CityGML與KML進行了介紹,最后從坐標參考系統(tǒng)、拓撲描述、細節(jié)層次描述和對于復(fù)雜對象的分解處理4個方面對這兩種標準進行了比較分析,以便使用者選擇合適的方式實現(xiàn)城市三維建模。
關(guān)鍵詞: 城市三維建模;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
城市作為人類聚集稠密的區(qū)域,是具有交通環(huán)境、覆蓋有一定面積的人群與房屋的密集結(jié)合體,它為人類生活提供了所需的生活空間,即城市空間。隨著社會的發(fā)展,人口急劇膨脹,城市的規(guī)模也隨之不斷擴大,各項城市設(shè)施急劇增加,以至傳統(tǒng)的城市管理模式很難滿足其迅速發(fā)展的需要。因此,就催生出了“數(shù)字城市”的概念?,F(xiàn)實世界是一個三維的世界,想要實現(xiàn)城市三維空間的表達與處理,建立城市三維模型是非常有必要的。傳統(tǒng)的三維城市建模技術(shù)經(jīng)過多年的發(fā)展已十分成熟,但絕大多數(shù)應(yīng)用還只是停留在視覺方面的表達,并且各個三維模型采用不同的技術(shù),沒有統(tǒng)一的框架,不利于數(shù)據(jù)信息共享。在此背景下,國際標準化組織OGC(Open Geospatial Consortium,開放地理信息協(xié)會)推出了三維城市建模規(guī)范CityGML,KML也于2008年被OGC宣布為開放地理資訊編碼。
1 城市三維建模
隨著城市的發(fā)展以及建模技術(shù)的逐漸成熟,許多城市都建立了自己的三維模型,用于城市的管理與規(guī)劃。但是現(xiàn)在大多數(shù)城市三維模型只是僅僅把高度作為第三維度,并沒有實現(xiàn)真正的三維,并且忽略了模型中的語義和拓撲關(guān)系,僅僅能夠滿足視覺方面的要求,不具備數(shù)據(jù)查詢以及數(shù)據(jù)分析的能力,顯然不能滿足現(xiàn)代城市進程的需求。OGC是一個致力于為全球地理空間社區(qū)制定優(yōu)質(zhì)開放標準的國際非營利組織,它制訂了一套空間數(shù)據(jù)表達和操作的抽象模型,下面簡單介紹其中兩種基本的描述標準CityGML和KML。
2 CityGML
CityGML(城市三維模型描述的標記語言)是由德國北萊茵河-威斯特伐利亞地區(qū)空間數(shù)據(jù)基礎(chǔ)設(shè)施三維特定興趣小組研發(fā),致力于描述三維城市對象的共同語義信息[1]。CityGML是基于XML編碼的,具有開放的標準化數(shù)據(jù)模型和交換格式,用于存儲城市和景觀的數(shù)字三維模型。它定義了描述城市中的大多數(shù)常見三維特征和對象以及它們之間關(guān)系的方法,它還為三維對象定義了不同的標準級別的細節(jié),這允許用于不同應(yīng)用和目的的對象表示,例如模擬,城市數(shù)據(jù)挖掘、設(shè)施管理和專題查詢。CityGML被實現(xiàn)為GML3(Geography Markup Language,地理標記語言3)的應(yīng)用模式。CityGML定義了一種用于描述三維對象的語義、幾何、拓撲和外觀的標準模型和機制,并定義了五級細節(jié)級別。包括主題類、聚合、對象之間的關(guān)系和空間屬性的泛化層次。CityGML是高度可擴展的,數(shù)據(jù)集可以包括不同的城市實體,支持總體趨勢,不僅可以對個體建筑進行建模,而且可以對整個場地、區(qū)域、城市、地區(qū)和國家進行建模。
3 KML
KML(Keyhole Markup Language)最初是在OGC之外開發(fā)的標準,由Google引入OGC的標準化。其目的是為了創(chuàng)建一個國際標準化語言,用于表示現(xiàn)有和未來的基于網(wǎng)絡(luò)的在線和移動地圖(2D)和數(shù)字地球儀(3D瀏覽器)的地理注釋。
KML也是基于XML的語言,專注于地理可視化。地理可視化意味著在虛擬地球上的圖形數(shù)據(jù)的表示以及到特定位置的移動和視圖定義的導航。KML與HTML最相似,KML實例文檔由地理瀏覽器以與Web瀏覽器中的HTML相同的方式進行解釋[2]。
為了注釋地球,KML允許在地球表面上定義象形圖和文本標記??梢詾楸砻姹硎局付ǒB加圖像,并指定具有不同顯示樣式的2D和3D形狀。對于單個KML對象,HTML說明可以與超鏈接和圖像相關(guān)聯(lián)。KML還可以通過網(wǎng)絡(luò)加載額外的KML文檔。這也包括加載具有紋理表面的計算機圖形模型。與GML不同,坐標參考系統(tǒng)一設(shè)置為具有垂直數(shù)據(jù)WGS84 EGM96大地水準面的WGS84橢球的地理坐標。另外,KML在吸收和借鑒GML標準的基礎(chǔ)上,刪除了地理模型中有關(guān)拓撲關(guān)系的描述,精簡描述元素,使用基于標簽(tags)的語法格式來描述地理信息[3]。由于Google Earth等產(chǎn)品的帶動現(xiàn)在很多GIS應(yīng)用都采用此種格式進行地理數(shù)據(jù)的交換。endprint
4 CityGML與KML比較
CityGML和KML都是基于XML的標記性語言,都能滿足數(shù)據(jù)共享的要求。城市三維建模是為了創(chuàng)建一個三維可視化的城市級別的空間數(shù)據(jù)庫,用來滿足城市規(guī)劃中的分析和查詢工作,以便于城市的規(guī)劃和管理[6]。兩者作為均能對三維模型描述的通用的國際性標準,CityGML和KML都有自己的考量,本文將從以下4個方面對CityGML和KML分析比較,以便使用者根據(jù)自己的需求進行選擇。
4.1 坐標參考系統(tǒng)
點是空間描述的基礎(chǔ),坐標系可以用有序多元組來表示點的位置。坐標系統(tǒng)的定義是描述空間信息最基本入手點。只有當和它相關(guān)聯(lián)的坐標參考系統(tǒng)被完全定義時才能確定坐標。GML對空間參考系統(tǒng)(Spatial Reference System,SRS)進行編碼,是地理信息系統(tǒng)處理數(shù)據(jù)的前提。GML3定義了地理空間坐標參考系統(tǒng)和投影關(guān)系及其編碼標準,便于不同應(yīng)用系統(tǒng)參考體系間的互相轉(zhuǎn)換。由于可以直接得到地理空間對象的屬性數(shù)據(jù),因此GML可以作為數(shù)據(jù)源對各種統(tǒng)計分析和空間分析程序進行分析。GML采用的空間參考系可以擴展并且與當前主要使用的投影類型和地理參考系相一致。同時GML允許用戶定義自己的單位和參考系的參數(shù)[4]。
GML模式中的坐標參考系統(tǒng)定義了參考系統(tǒng)模式referenceSystems.xsd、基準模式datums.xsd、坐標系統(tǒng)模式coordinateSystems.xsd、坐標參考系統(tǒng)模式coordinateReferenceSystems.xsd、坐標操作模式coordinateOperations.xsd、數(shù)據(jù)質(zhì)量模式dataQuality.xsd 6個GML模式文檔,用于編碼坐標參考系統(tǒng)和坐標操作。
6 個模式文檔在內(nèi)容、結(jié)構(gòu)和依賴性上都有著密切的關(guān)系。這可以使GML直接引用獨立的坐標系統(tǒng)并能按照要求轉(zhuǎn)換為所需的坐標系統(tǒng)。例如,通過坐標操作模式的定義,可以實現(xiàn)兩種坐標系間的相互轉(zhuǎn)換,再通過數(shù)據(jù)質(zhì)量模式,控制所轉(zhuǎn)換轉(zhuǎn)數(shù)據(jù)的精度,確保轉(zhuǎn)換過程中的精確度。CityGML作為GML3的應(yīng)用Schema,是城市三維建模描述的一種應(yīng)用,沿用GML3的坐標參考系統(tǒng),因此CityGML也支持不同坐標系的定義。
KML中坐標系統(tǒng)的定義相較于CityGML則相對簡單,它要求數(shù)據(jù)必須定義到WGS84坐標系統(tǒng)下。這種方法可能會給使用者帶來不便,比如,建筑行業(yè)通常使用的是工程坐標系,而使用者不可能都是使用工程坐標系的,那么經(jīng)過KML的編碼后坐標系就會發(fā)成變化,這會對使用者后期的工作帶來不便。
4.2 拓撲關(guān)系
空間實體間的拓撲關(guān)系是進行空間查詢、分析推理的基礎(chǔ),是GIS中空間實體之間最重要、最基本的關(guān)系之一。有研究者指出,實體間的拓撲關(guān)系等同于實體本身[5]。在地理建模中,拓撲主要用于加速幾何計算。拓撲允許使用簡單組合或代數(shù)算法以表示對象間的空間關(guān)系特征來進行構(gòu)建。通過向城市空間數(shù)據(jù)庫的應(yīng)用中添加拓撲模型的描述,能夠提高對空間信息分析和查詢的效率。
在CityGML中,可以顯式地表示拓撲。空間的每一部分可以僅被建模一次,然后由包括相同幾何的所有特征引用,從而可以避免冗余并保持部件之間的明確的拓撲關(guān)系。CityGML也可以把拓撲模型與幾何模型分開表示,用Xlink來進行鏈接。
KML中則省略了GML中關(guān)于拓撲關(guān)系的描述,通過地標的形式來標注地球上的點。雖然通過幾何模型的定義,能夠?qū)崿F(xiàn)一些簡單查詢,但是較存在拓撲描述的CityGML來說在查詢功能上則顯得尤為不足。
4.3 細節(jié)層次描述模型
CityGML支持細節(jié)級別(Levels of Detail,LoD)的概念。在一個CityGML數(shù)據(jù)集中,一個對象可以在多達5個離散和明確定義的LoD中同時表示,從單純的DTM到具有內(nèi)部結(jié)構(gòu)的建筑模型。這是通過特征類僅對特定范圍的LoD有效才能實現(xiàn)的。例如,建筑要素類對于LoD1到4是有效的,而邊界面要素類只對LoD2到4有效。CityGML每一個細節(jié)級別具體定義為:LoD0,地域模型(Regional model),描述了具有單獨3D地標的2.5D的DTM數(shù)據(jù),可以疊加二維地圖或者是航空影像;LoD1,城市/場地模型(City/Site model),表現(xiàn)為沒有屋頂結(jié)構(gòu)的塊狀模型,其形狀由棱柱型拉伸而成;LoD2,城市/場地模型(City/Site model),已經(jīng)包括建筑物的屋頂模型和較大的延伸部分,如屋頂和樓梯;LoD3,(City/Site model)城市/場地模型,在LoD2的基礎(chǔ)上增加更多細節(jié)的建筑模型;LoD4,室內(nèi)模型(Interior model),在LoD3的基礎(chǔ)上增加了對建筑物的室內(nèi)的建模,即建筑內(nèi)部結(jié)構(gòu)、家具、門窗等設(shè)施都有詳細描述。CityGML文件可以但是不是必須包含所有的層級,使用者根據(jù)自己的需求建立所需的層級。
KML中關(guān)于LoD的定義的出發(fā)角度與CityGML不同,KML側(cè)重的是根據(jù)顯示的分辨率來為用戶呈現(xiàn)不同的可視化效果。KML規(guī)定幾個分辨率的范圍,當分辨率在相應(yīng)的范圍內(nèi)時,給予相對分辨率下LoD的描述。KML對LoD的定義是利用KML中的LoD標簽和Region標簽來實現(xiàn)的。LoD標簽用來給數(shù)據(jù)進行分層,Region標簽用于決定物體在目標區(qū)域是否顯示。簡單概括來說,基于LoD技術(shù)的KML系統(tǒng)就是,只顯示屏幕中的物體其他的物體暫時不顯示,等到屏幕移動到時再顯示,這樣的好處是便于加載。相對于CityGML來說,基于KML的LoD技術(shù)相對簡單,易于使用。
4.4 復(fù)雜對象分解處理方法
1) 重復(fù)模型的建模
在城市建模中會有比如路燈、樹木等相同結(jié)構(gòu)的實體重復(fù)的出現(xiàn)在不同的位置,若是對其重復(fù)的建模則會帶來不必要的工作量并增加了存儲空間的負擔。在CityGML中只需對原型模型矩陣變換即可。CityGML中類似于路燈、樹木等相同形狀的物體可以分別用一個相同的原型來表示,在不同的位置對其進行縮放、平移和旋轉(zhuǎn)操作即可實現(xiàn)[6]。endprint
2) 閉合表面
在城市三維建模時,由于地下隧道以及人行通道等建筑物不容易描述其空間形狀,給建模帶來了難度。ISO19107標準用“外殼”表達此類物體的空間部分。但是“外殼”被定義為閉合體,也就是說不存在從外部到內(nèi)部的通道,這與現(xiàn)實不符。另外還存在一個問題就是地下通道和DTM的無縫集成問題,因為DTM要求不能存在空洞,也就是不能存在像地下通道入口這樣的非閉合面。這一問題可用基于采樣點的不規(guī)則三角網(wǎng)(TIN)來解決,即把地下通道和DTM相交的邊當做DTM的邊,相交面為兩者共有。CityGML引進了“閉合面”的概念,對于非閉合的物體,用虛擬的閉合面縫合,比如地下通道和DTM的相交面。當計算地下物體的體積時,把它當做封閉的物體進行計算,當需要可視化時,把相交面設(shè)定為不可見即可。
在KML中則沒有這兩項技術(shù)的定義。
5 總結(jié)
本文對城市三維建模CityGML和KML標準進行了比較分析,兩者都是基于XML,均具備數(shù)據(jù)共享和數(shù)據(jù)互操作的功能。在三維城市模型的背景下,CityGML提供了三維制圖設(shè)計的初始數(shù)據(jù);KML是用于交換和存儲設(shè)計過程結(jié)果的格式,可以直接存儲在三維瀏覽器中。CityGML和KML是互補的,而不是三維城市模型表示的競爭標準。CityGML用于存儲和傳輸關(guān)于三維城市模型的語義信息,即城市空間中語義豐富的三維空間對象的交換。KML起到了GML的補充作用,因為GML較適用于模擬地理數(shù)據(jù)及其含義,而可視化方面較弱。KML注重于交換三維城市模型圖形表達的格式,即設(shè)計過程的結(jié)果。
CityGML可以很好地解決靜態(tài)模型,可以建立大規(guī)模的城市三維模型,這也是CityGML建立的初衷之一。而KML在動態(tài)模型上則有很好的表現(xiàn)。因此,如果建立三維城市模型在存儲、管理和交換方面有較高的要求,則采用CityGML較為合適,特別是大規(guī)模的城市三維建模,若是使用者注重后期的應(yīng)用層,則KML較為合適。
參考文獻:
[1] 柳翠明.三維城市模型CityGML初探[J].城市勘測,2010(zl):5-7.
[2] 王志紅,張亦漢,任金銅.KML語言標記規(guī)范及其與GML的交換研究[J].測繪標準化,2010,26(1).
[3] 袁俊超,苗放,李玉林.使用KML實現(xiàn)多細節(jié)層次技術(shù)[J].地理空間信息,2009,7(4):159-161.
[4] 萬程輝,趙吉先,陶國強.地理標記語言GML的特性[J].江西測繪,2005(4):26-28.
[5] 虞強源,劉大有,謝琦.空間區(qū)域拓撲關(guān)系分析方法綜述[J].軟件學報,2003,14(4):777-782.
[6] 周寧,張軍.基于CityGML的城市三維模型的描述方法[J].測繪工程,2010,19(4):50-55.endprint