何興富
(重慶市勘測院,重慶 400020)
近年來,各地方管理部門加大對三維地理信息系統(tǒng)的建設(shè),市場上也出現(xiàn)大量三維地理信息平臺和應(yīng)用系統(tǒng)。隨著各城市“三維化”的不斷深入,每年都在產(chǎn)生數(shù)以T計(jì)的城市三維數(shù)據(jù)模型數(shù)據(jù)。以重慶市為例,2010年已基本完成上百平方千米的建城區(qū)三維建模工作。然而,數(shù)字城市的建設(shè)還遠(yuǎn)遠(yuǎn)沒有跟得上網(wǎng)絡(luò)發(fā)展的需求。一方面,每個(gè)城市都存在大量的運(yùn)行于單機(jī)或局域網(wǎng)上的三維仿真系統(tǒng),這些系統(tǒng)之間缺乏互通機(jī)制。另一方面,三維模型數(shù)據(jù)量大的特性也對分布式三維地理信息系統(tǒng)建設(shè)提供了新的挑戰(zhàn)[1]。
面向網(wǎng)絡(luò)應(yīng)用的分布式三維仿真系統(tǒng)必然是城市三維仿真系統(tǒng)建設(shè)到成熟階段后的一個(gè)重要發(fā)展方向,也是數(shù)字城市服務(wù)于社會(huì)大眾的必然需求。本文以TerraGate組件為基礎(chǔ),介紹相關(guān)組件的基本功能,設(shè)計(jì)并實(shí)現(xiàn)一套分布式三維仿真系統(tǒng)原型,實(shí)現(xiàn)網(wǎng)絡(luò)調(diào)用三維地形模型、二維矢量圖層和三維精細(xì)模型等數(shù)據(jù)源。
TerraGate系列工具用來滿足Skyline的3D技術(shù)客戶端和服務(wù)器數(shù)據(jù)傳輸需求。TerraGate能夠?qū)⒌匦巍⑻卣骰虻貓D數(shù)據(jù)傳輸?shù)絋erraExplorer客戶端和WFS/WMS客戶,在TerraExplorer用戶之間提供協(xié)作會(huì)話功能并提高網(wǎng)站整合能力[2]。
TerraGate包含多個(gè)組件,本文需要用到的組件包括:
(1)Terrain Server地形服務(wù)組件。從地形緩存數(shù)據(jù)集(MPT)傳輸三維地形數(shù)據(jù)或通過DirectConnect擴(kuò)展直接傳輸源數(shù)據(jù)。通過它,可以從分布于網(wǎng)絡(luò)上的主機(jī)中以讀取三維地形數(shù)據(jù)。其特點(diǎn)包括:
①通過內(nèi)部網(wǎng)絡(luò)或互聯(lián)網(wǎng)進(jìn)行三維地形的傳輸;
②對低寬帶的情況能夠進(jìn)行優(yōu)化;
③采用TCP/IP協(xié)議,支持SSL(Secure Socket Layer)協(xié)議;
④充分利用多核處理器服務(wù)器的硬件優(yōu)勢;
⑤高效的海量數(shù)據(jù)處理能力,地形數(shù)據(jù)的大小只被磁盤媒質(zhì)所限制。
TerraGate Terrain Server(TS)支持分布式部署,即能夠從若干個(gè)服務(wù)器上共同傳輸一個(gè)單一的3D工程。每個(gè)TS作用于工程中其負(fù)責(zé)的部分。一個(gè)TS將其他TS上的數(shù)據(jù)做成緩存,使運(yùn)行效率更好。
(2)Spatial Framework Services(SFS)組件。基于OGC規(guī)范設(shè)計(jì),用于提供WFS和WMS服務(wù)。其特點(diǎn)包括:
①可以從Shape文件、Oracle Spatial空間數(shù)據(jù)庫和ArcSDE讀取矢量數(shù)據(jù);
②在服務(wù)器端創(chuàng)建一個(gè)Cache,用于高效的讀取流數(shù)據(jù),并且可以高效的處理多用戶訪問需求;
③用流方式讀取標(biāo)準(zhǔn)的WFS或者混合的WFS,使得數(shù)據(jù)更加安全;
④可以無縫集成服務(wù)器集群,提供可以升級的解決方案;
⑤每個(gè)層的Cache都有三個(gè)不同的細(xì)節(jié)層次,以達(dá)到最優(yōu)。
系統(tǒng)采用基本的模型-視圖-控制器(MVC)三層體系結(jié)構(gòu)。基于TerraGate組件,可以實(shí)現(xiàn)對網(wǎng)絡(luò)三維地形模型和矢量圖層的調(diào)用,基于網(wǎng)絡(luò)傳輸和數(shù)據(jù)安全等問題考慮,需要對數(shù)據(jù)連接進(jìn)行一定的封裝,構(gòu)成模型端。視圖設(shè)計(jì)使用基于Office 2007風(fēng)格的控件庫生成標(biāo)準(zhǔn)Windows窗體的用戶界面,由工具欄、視圖窗口、狀態(tài)欄、圖層控制等部分組成。控制端對應(yīng)于業(yè)務(wù)邏輯層,負(fù)責(zé)數(shù)據(jù)的輸入輸出和系統(tǒng)的基本業(yè)務(wù)邏輯的實(shí)現(xiàn)。系統(tǒng)結(jié)構(gòu)如圖2所示。系統(tǒng)分層簡要介紹如如下:
(1)在數(shù)據(jù)訪問層上,通過對數(shù)據(jù)訪問接口的封裝,可以實(shí)現(xiàn)對互聯(lián)網(wǎng)、局域網(wǎng)或本地?cái)?shù)據(jù)的訪問。其中:
①矢量數(shù)據(jù)庫按數(shù)據(jù)提供方的不同可以是由TerraGate提供的SFS數(shù)據(jù)源、基于OGC規(guī)范構(gòu)建的WFS矢量數(shù)據(jù)源、ArcSDE數(shù)據(jù)等。
②地形數(shù)據(jù)庫提供三維地形模型,根據(jù)選擇的基礎(chǔ)三維引擎不同而不同。在本系統(tǒng)中使用TerraExplorer專用的MPT數(shù)據(jù)庫,由TerraGate提供地形數(shù)據(jù)服務(wù)。
③Web服務(wù)器用于提供精細(xì)三維模型的數(shù)據(jù)文件存儲和訪問。將精細(xì)三維模型發(fā)布到Web服務(wù)器下,并建立索引,由三維引擎進(jìn)行訪問。
④其他數(shù)據(jù)服務(wù)器提供系統(tǒng)所需要的其他類型數(shù)據(jù)。

圖2 系統(tǒng)分層結(jié)構(gòu)圖
⑤本地?cái)?shù)據(jù)指存儲在本地的各類數(shù)據(jù)類型,一般包括業(yè)務(wù)邏輯層所必需的數(shù)據(jù)。
(2)業(yè)務(wù)邏輯層在基礎(chǔ)三維引擎的支持下,實(shí)現(xiàn)系統(tǒng)必須的基礎(chǔ)分析功能,如空間定位、空間量算、空間分析、專題分析和數(shù)據(jù)輸入輸出等GIS功能以及用戶角色控制、系統(tǒng)配置等其他業(yè)務(wù)邏輯的實(shí)現(xiàn)。
(3)視圖層負(fù)責(zé)顯示用戶數(shù)據(jù)和響應(yīng)用戶操作,其核心是基礎(chǔ)三維引擎,在本文中使用的是TerraExporer的三維顯示組件。
在系統(tǒng)框架設(shè)計(jì)的基礎(chǔ)上,本文實(shí)現(xiàn)了一個(gè)基于TerraExplorer的分布式三維仿真系統(tǒng),界面如圖3所示。
矢量數(shù)據(jù)使用SFS服務(wù)提供,通過數(shù)據(jù)庫連接配置為系統(tǒng)提供連接參數(shù)。三維模型使用IIS發(fā)布,在網(wǎng)絡(luò)端建立模型索引表,通過網(wǎng)絡(luò)方式加載。數(shù)據(jù)配置部分代碼如下所示。

圖3 分布式三維仿真系統(tǒng)原型

作為一個(gè)原型,系統(tǒng)實(shí)現(xiàn)了查詢定位、空間分析兩大類型分析功能和系統(tǒng)視圖控制。在場景中漫游時(shí),根據(jù)當(dāng)前位置實(shí)時(shí)計(jì)算需要加載的模型列表,將分層模型下載到本地緩存中,由三維引擎對場景進(jìn)行更新和LOD替換,相關(guān)參數(shù)可根據(jù)網(wǎng)絡(luò)情況手工調(diào)整。所有分析功能在本地完成,功能涉及的數(shù)據(jù)交換由數(shù)據(jù)訪問層實(shí)現(xiàn),功能無需直接訪問數(shù)據(jù)本身。
TerraGate的網(wǎng)絡(luò)組件為發(fā)布三維地形數(shù)據(jù)、矢量數(shù)據(jù)和影像數(shù)據(jù)提供了完整的解決方案。在此基礎(chǔ)上,結(jié)合一定的數(shù)據(jù)訪問封裝,即可實(shí)現(xiàn)安全、高效的基礎(chǔ)地理數(shù)據(jù)訪問。三維精細(xì)模型使用Web服務(wù)器進(jìn)行發(fā)布和管理,結(jié)合三維模型的LOD算法,即可實(shí)現(xiàn)相對流暢的網(wǎng)絡(luò)調(diào)用。
以上思路為分布式三維仿真系統(tǒng)的建設(shè)提供了一個(gè)可實(shí)現(xiàn)的解決方案,本文針對該解決方案進(jìn)行系統(tǒng)設(shè)計(jì),并實(shí)現(xiàn)了一個(gè)分布式三維仿真系統(tǒng)的原型。在實(shí)際測試中,局域網(wǎng)環(huán)境下可以實(shí)現(xiàn)流暢運(yùn)行。互聯(lián)網(wǎng)環(huán)境下,三維地形模型和矢量數(shù)據(jù)的訪問基本流暢,精細(xì)三維模型因模型大小的不同而有所差異。一般來說,單個(gè)模型的三層LOD模型文件大小從 10 K~1000 K不等,在模型密集區(qū)域會(huì)出現(xiàn)較長時(shí)間的加載等待。
網(wǎng)絡(luò)速度仍然是制約三維仿真系統(tǒng)向網(wǎng)絡(luò)發(fā)展的一大瓶頸,本文僅提供了一個(gè)可行的思路,在三維精細(xì)模型文件較小的情況下可以較好地運(yùn)行。網(wǎng)絡(luò)傳輸優(yōu)化、模型流式訪問[3]和動(dòng)態(tài)LOD等都是下一步需要研究的問題。
[1]侯守明,潘亞鋒,沈志廣等.基于協(xié)同設(shè)計(jì)的三維模型數(shù)據(jù)網(wǎng)絡(luò)傳輸研究[J].微計(jì)算機(jī)信息,2010(6)
[2]東方道邇.TerraGate介紹[OL],http://www.east-dawn.com/pubnews/213971/20090304/1213988.jsp
[3]周云虹,李志方.流式與非流式傳輸技術(shù)分析[J].現(xiàn)代計(jì)算機(jī),2002(3)