黃夢(mèng)龍
(1.福建省基礎(chǔ)地理信息中心,福建 福州350003)
基于MongoDB的城市三維模型數(shù)據(jù)建庫(kù)技術(shù)探討
黃夢(mèng)龍1
(1.福建省基礎(chǔ)地理信息中心,福建 福州350003)
分析了城市三維模型管理的需求,從三維模型數(shù)據(jù)庫(kù)規(guī)范以及MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)模型出發(fā),設(shè)計(jì)了三維模型數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)?;赟kyline三維地理信息系統(tǒng)和MongoDB驅(qū)動(dòng)程序,開發(fā)了三維模型數(shù)據(jù)庫(kù)管理系統(tǒng),實(shí)現(xiàn)了三維模型的建庫(kù)管理。
城市三維模型;Skyline;MongoDB;模型數(shù)據(jù)庫(kù)
城市三維建模是構(gòu)建數(shù)字城市建設(shè)的一個(gè)組成部分。城市三維模型在城市規(guī)劃、房地產(chǎn)開發(fā)、交通管理、旅游等領(lǐng)域起著重要的作用。
MongoDB是所有NoSQL數(shù)據(jù)庫(kù)中最像關(guān)系數(shù)據(jù)庫(kù)的一種,與SqlServer等關(guān)系數(shù)據(jù)庫(kù)類似。MongoDB的數(shù)據(jù)庫(kù)對(duì)象分為數(shù)據(jù)庫(kù)、集合(Collection)和 文 檔(Document)。MongoDB的 數(shù) 據(jù) 庫(kù) 與SqlSevrer的數(shù)據(jù)庫(kù)類似,集合則類似于關(guān)系表,而文檔則類似于關(guān)系數(shù)據(jù)庫(kù)的記錄。與關(guān)系數(shù)據(jù)庫(kù)的記錄比,MongoDB的文檔提供了靈活的存儲(chǔ)方式,沒(méi)有嚴(yán)格的模式限制。此外MongoDB還提供GridFS對(duì)象,用于對(duì)文件進(jìn)行存儲(chǔ)。GridFS由文件信息集合和文件分塊集合組成,用于對(duì)二進(jìn)制文件進(jìn)行分塊存儲(chǔ)。針對(duì)空間數(shù)據(jù)的存儲(chǔ),MogoDB提供了GeoJSON對(duì)象,可用于存儲(chǔ)點(diǎn)狀、線狀和面狀對(duì)象,MongoDB還針對(duì)GeoJSON對(duì)象提供了空間索引,實(shí)現(xiàn)空間數(shù)據(jù)的高效查詢。
本文從三維模型的特點(diǎn)出發(fā),結(jié)合三維模型建庫(kù)的標(biāo)準(zhǔn)和MongoDB的數(shù)據(jù)庫(kù)對(duì)象和數(shù)據(jù)類型,設(shè)計(jì)模型數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)如圖 1。
圖1 基于MongoDB的三維模型庫(kù)結(jié)構(gòu)
系統(tǒng)的數(shù)據(jù)庫(kù)由查詢定位數(shù)據(jù)庫(kù)、系統(tǒng)運(yùn)維庫(kù)和各地市的模型庫(kù)組成。查詢定位數(shù)據(jù)庫(kù)存儲(chǔ)行政區(qū)劃、地名、興趣點(diǎn)等輔助查詢和定位數(shù)據(jù),系統(tǒng)運(yùn)維庫(kù)存儲(chǔ)了用戶、角色、權(quán)限、系統(tǒng)訪問(wèn)日志以及數(shù)據(jù)庫(kù)目錄等數(shù)據(jù)。
各地市的模型庫(kù)結(jié)構(gòu)由模型庫(kù)、模型子庫(kù)、要素集合、文件集合4個(gè)層次組成。模型庫(kù)是一個(gè)邏輯的概念,用于將各地市的模型庫(kù)分組管理,一個(gè)邏輯庫(kù)中有4個(gè)模型子庫(kù),每個(gè)子庫(kù)對(duì)應(yīng)到一個(gè)MongoDB的數(shù)據(jù)庫(kù),分別存儲(chǔ)模型的元數(shù)據(jù)以及源模型、表現(xiàn)模型和歷史模型的屬性及模型文件。模型的幾何信息采用GeoJSON對(duì)象存儲(chǔ)。各子庫(kù)的模型文件用GridFS存儲(chǔ)模型文件,并用模型類別、編碼、時(shí)間戳組合形成的文件名來(lái)區(qū)分各個(gè)模型。采用這樣的命名方式可以方便地將模型與其屬性關(guān)聯(lián)起來(lái),并按類別等信息對(duì)模型文件進(jìn)行批量操作。
每個(gè)模型的元數(shù)據(jù)、表現(xiàn)模型屬性和源模型屬性通過(guò)模型編碼進(jìn)行關(guān)聯(lián),由于模型編碼唯一標(biāo)識(shí)了每一個(gè)模型,可以由表現(xiàn)模型快速查詢到模型的元數(shù)據(jù)以及對(duì)應(yīng)的源模型。模型更新時(shí),通過(guò)時(shí)間戳來(lái)標(biāo)記某一歷史時(shí)間點(diǎn)的模型,實(shí)現(xiàn)歷史模型的管理,以方便某一歷史三維模型的回溯。
2.1 系統(tǒng)總體結(jié)構(gòu)
本文采用Skyline TerraExplorer Pro6.1作為三維平臺(tái), 以MongoDB的C#驅(qū)動(dòng)訪問(wèn)模型數(shù)據(jù)庫(kù),開發(fā)了三維模型管理系統(tǒng)。系統(tǒng)運(yùn)行于內(nèi)部局域網(wǎng),由數(shù)據(jù)層、服務(wù)層以及應(yīng)用層組成,系統(tǒng)總體設(shè)計(jì)如圖 2所示。
圖2 系統(tǒng)總體結(jié)構(gòu)
數(shù)據(jù)層和服務(wù)層部署在服務(wù)器端。數(shù)據(jù)層包括基礎(chǔ)地理信息數(shù)據(jù)、三維地形模型和三維城市構(gòu)筑物模型。服務(wù)層包括數(shù)據(jù)查詢服務(wù)和模型提供服務(wù)。數(shù)據(jù)查詢服務(wù)基于MongoDB的空間查詢功能開發(fā),用于地名、興趣點(diǎn)和行政區(qū)劃查詢、輔助模型的定位和瀏覽。由于Skyline TerraExplorer Pro并不支持從數(shù)據(jù)庫(kù)中加載模型數(shù)據(jù),系統(tǒng)開發(fā)模型提供服務(wù),該服務(wù)監(jiān)控并實(shí)時(shí)響應(yīng)客戶端加載模型的請(qǐng)求,從模型庫(kù)中讀取需要的三維模型數(shù)據(jù)返回給客戶端,完成從數(shù)據(jù)庫(kù)中加載模型數(shù)據(jù)。應(yīng)用層為三維模型數(shù)據(jù)庫(kù)管理系統(tǒng),部署在各客戶端。
2.2 系統(tǒng)功能實(shí)現(xiàn)
系統(tǒng)實(shí)現(xiàn)了模型庫(kù)結(jié)構(gòu)管理,模型數(shù)據(jù)批量入庫(kù)、刪除、更新以及編輯,模型快速提取與分發(fā)等功能。模型批量更新時(shí),可以同時(shí)將舊的模型數(shù)據(jù)轉(zhuǎn)入到歷史庫(kù)中,并為每個(gè)模型添加時(shí)間戳,從而實(shí)現(xiàn)歷史模型的瀏覽與回溯。
通過(guò)與后臺(tái)的模型查詢服務(wù)對(duì)接,系統(tǒng)通過(guò)2種方式對(duì)模型數(shù)據(jù)進(jìn)行加載和瀏覽:①以流的方式加載模型數(shù)據(jù),借助Skyline TerraExplorer Pro的動(dòng)態(tài)內(nèi)存管理能力,適合于大范圍模型的加載瀏覽。②查詢感興趣的區(qū)域模型,以動(dòng)態(tài)創(chuàng)建模型對(duì)象的方式逐個(gè)加載,適合于快速查詢?yōu)g覽感興趣區(qū)域的模型。
此外,系統(tǒng)還提供了模型統(tǒng)計(jì)的功能,能夠以多種統(tǒng)計(jì)圖表的方式顯示各地區(qū)、各類型的模型數(shù)量,便于掌握三維模型數(shù)據(jù)的生產(chǎn)和建庫(kù)情況。
系統(tǒng)實(shí)現(xiàn)涉及的空間范圍查詢采用MongoDB的空間查詢算子實(shí)現(xiàn),屬性查詢則采用MongoDB提供的豐富的屬性查詢操作完成。系統(tǒng)界面如圖 3所示。
圖3 系統(tǒng)界面
本文采用Skyline軟件作為二次開發(fā)工具,利用MongoDB數(shù)據(jù)庫(kù)實(shí)現(xiàn)三維模型的建庫(kù)與管理,已應(yīng)用到福建省數(shù)字城市建設(shè)生產(chǎn)的三維模型管理中,在三維模型的管理、分發(fā)和提供方面進(jìn)行了一些有益的探索。目前已完成了數(shù)字泉州和廈門生產(chǎn)的三維模型的建庫(kù),其中泉州城市模型約4 000個(gè),廈門城市模型約15 000個(gè),表現(xiàn)模型數(shù)據(jù)總量近20 G,源模型數(shù)據(jù)總量約43 G,在后續(xù)的應(yīng)用中將完成其他數(shù)字城市三維模型的建庫(kù)。
Max格式的模型是目前通用的三維模型數(shù)據(jù)格式,國(guó)內(nèi)外主流的三維地理信息系統(tǒng)都支持Max模型的導(dǎo)入與展示,Max模型也可在3D Max軟件中進(jìn)一步編輯處理,因而基于該系統(tǒng)提取和分發(fā)的模型,也可用于基于其他三維平臺(tái)的三維地理信息系統(tǒng)建設(shè)。
[1] 唐楨,張新長(zhǎng),曹凱濱.基于Skyline的三維技術(shù)在城市規(guī)劃中的應(yīng)用研究 [J].測(cè)繪通報(bào),2010(5):20-23
[2] CH/T 9015-2012.三維地理信息模型數(shù)據(jù)產(chǎn)品規(guī)范[S].
[3] CH/T 9016-2012.三維地理信息模型數(shù)據(jù)生產(chǎn)規(guī)范[S].
[4] CH/T 9017-2012.三維地理信息模型數(shù)據(jù)庫(kù)規(guī)范[S].
[5] 朱國(guó)敏,馬照亭,孫隆祥,等.城市三維地理信息系統(tǒng)中海量數(shù)據(jù)的數(shù)據(jù)庫(kù)組織與管理[J].測(cè)繪科學(xué),2008,33(1):238-240
[6] 周松濤. 基于關(guān)系數(shù)據(jù)庫(kù)的三維模型庫(kù)技術(shù)[J]. 測(cè)繪信息與工程,2005,30(6):30-31
[7] 王冬,王曉華.三維 GIS 中海量模型調(diào)度與存儲(chǔ)地理空間信息[J]. 地理空間信息,2012,10(1):109-111
[8] Cbodorow K, Dirolf M. MongoDB權(quán)威指南[M].北京:人民郵電出版,2011
[9] 黃夢(mèng)龍. 基于Skyline的三維城市模型數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 測(cè)繪與空間地理信息,2014,37(8):133-135
[10] MongoDB, Inc. MongoDB Manual[EB/OL]. http://docs. mongodb.org/manual,2014-08-09
P208
B
1672-4623(2015)01-0020-02
10.3969/j.issn.1672-4623.2015.01.007
黃夢(mèng)龍,高級(jí)工程師,主要從事基礎(chǔ)地理信息數(shù)據(jù)建庫(kù)和GIS應(yīng)用開發(fā)工作。
2014-09-10。
項(xiàng)目來(lái)源:福建省測(cè)繪地理信息局2014年測(cè)繪地理信息科技創(chuàng)新資助項(xiàng)目。