何興富
(重慶市勘測院,重慶 400020)
近年來,各地方管理部門加大對三維地理信息系統(tǒng)的建設,市場上也出現大量三維地理信息平臺和應用系統(tǒng)。隨著各城市“三維化”的不斷深入,每年都在產生數以T計的城市三維數據模型數據。以重慶市為例,2010年已基本完成上百平方千米的建城區(qū)三維建模工作。然而,數字城市的建設還遠遠沒有跟得上網絡發(fā)展的需求。一方面,每個城市都存在大量的運行于單機或局域網上的三維仿真系統(tǒng),這些系統(tǒng)之間缺乏互通機制。另一方面,三維模型數據量大的特性也對分布式三維地理信息系統(tǒng)建設提供了新的挑戰(zhàn)[1]。
面向網絡應用的分布式三維仿真系統(tǒng)必然是城市三維仿真系統(tǒng)建設到成熟階段后的一個重要發(fā)展方向,也是數字城市服務于社會大眾的必然需求。本文以TerraGate組件為基礎,介紹相關組件的基本功能,設計并實現一套分布式三維仿真系統(tǒng)原型,實現網絡調用三維地形模型、二維矢量圖層和三維精細模型等數據源。
TerraGate系列工具用來滿足Skyline的3D技術客戶端和服務器數據傳輸需求。TerraGate能夠將地形、特征或地圖數據傳輸到TerraExplorer客戶端和WFS/WMS客戶,在TerraExplorer用戶之間提供協(xié)作會話功能并提高網站整合能力[2]。
TerraGate包含多個組件,本文需要用到的組件包括:
(1)Terrain Server地形服務組件。從地形緩存數據集(MPT)傳輸三維地形數據或通過DirectConnect擴展直接傳輸源數據。通過它,可以從分布于網絡上的主機中以讀取三維地形數據。其特點包括:
①通過內部網絡或互聯網進行三維地形的傳輸;
②對低寬帶的情況能夠進行優(yōu)化;
③采用TCP/IP協(xié)議,支持SSL(Secure Socket Layer)協(xié)議;
④充分利用多核處理器服務器的硬件優(yōu)勢;
⑤高效的海量數據處理能力,地形數據的大小只被磁盤媒質所限制。
TerraGate Terrain Server(TS)支持分布式部署,即能夠從若干個服務器上共同傳輸一個單一的3D工程。每個TS作用于工程中其負責的部分。一個TS將其他TS上的數據做成緩存,使運行效率更好。
(2)Spatial Framework Services(SFS)組件。基于OGC規(guī)范設計,用于提供WFS和WMS服務。其特點包括:
①可以從Shape文件、Oracle Spatial空間數據庫和ArcSDE讀取矢量數據;
②在服務器端創(chuàng)建一個Cache,用于高效的讀取流數據,并且可以高效的處理多用戶訪問需求;
③用流方式讀取標準的WFS或者混合的WFS,使得數據更加安全;
④可以無縫集成服務器集群,提供可以升級的解決方案;
⑤每個層的Cache都有三個不同的細節(jié)層次,以達到最優(yōu)。
系統(tǒng)采用基本的模型-視圖-控制器(MVC)三層體系結構。基于TerraGate組件,可以實現對網絡三維地形模型和矢量圖層的調用,基于網絡傳輸和數據安全等問題考慮,需要對數據連接進行一定的封裝,構成模型端。視圖設計使用基于Office 2007風格的控件庫生成標準Windows窗體的用戶界面,由工具欄、視圖窗口、狀態(tài)欄、圖層控制等部分組成。控制端對應于業(yè)務邏輯層,負責數據的輸入輸出和系統(tǒng)的基本業(yè)務邏輯的實現。系統(tǒng)結構如圖2所示。系統(tǒng)分層簡要介紹如如下:
(1)在數據訪問層上,通過對數據訪問接口的封裝,可以實現對互聯網、局域網或本地數據的訪問。其中:
①矢量數據庫按數據提供方的不同可以是由TerraGate提供的SFS數據源、基于OGC規(guī)范構建的WFS矢量數據源、ArcSDE數據等。
②地形數據庫提供三維地形模型,根據選擇的基礎三維引擎不同而不同。在本系統(tǒng)中使用TerraExplorer專用的MPT數據庫,由TerraGate提供地形數據服務。
③Web服務器用于提供精細三維模型的數據文件存儲和訪問。將精細三維模型發(fā)布到Web服務器下,并建立索引,由三維引擎進行訪問。
④其他數據服務器提供系統(tǒng)所需要的其他類型數據。
圖2 系統(tǒng)分層結構圖
⑤本地數據指存儲在本地的各類數據類型,一般包括業(yè)務邏輯層所必需的數據。
(2)業(yè)務邏輯層在基礎三維引擎的支持下,實現系統(tǒng)必須的基礎分析功能,如空間定位、空間量算、空間分析、專題分析和數據輸入輸出等GIS功能以及用戶角色控制、系統(tǒng)配置等其他業(yè)務邏輯的實現。
(3)視圖層負責顯示用戶數據和響應用戶操作,其核心是基礎三維引擎,在本文中使用的是TerraExporer的三維顯示組件。
在系統(tǒng)框架設計的基礎上,本文實現了一個基于TerraExplorer的分布式三維仿真系統(tǒng),界面如圖3所示。
矢量數據使用SFS服務提供,通過數據庫連接配置為系統(tǒng)提供連接參數。三維模型使用IIS發(fā)布,在網絡端建立模型索引表,通過網絡方式加載。數據配置部分代碼如下所示。
圖3 分布式三維仿真系統(tǒng)原型
作為一個原型,系統(tǒng)實現了查詢定位、空間分析兩大類型分析功能和系統(tǒng)視圖控制。在場景中漫游時,根據當前位置實時計算需要加載的模型列表,將分層模型下載到本地緩存中,由三維引擎對場景進行更新和LOD替換,相關參數可根據網絡情況手工調整。所有分析功能在本地完成,功能涉及的數據交換由數據訪問層實現,功能無需直接訪問數據本身。
TerraGate的網絡組件為發(fā)布三維地形數據、矢量數據和影像數據提供了完整的解決方案。在此基礎上,結合一定的數據訪問封裝,即可實現安全、高效的基礎地理數據訪問。三維精細模型使用Web服務器進行發(fā)布和管理,結合三維模型的LOD算法,即可實現相對流暢的網絡調用。
以上思路為分布式三維仿真系統(tǒng)的建設提供了一個可實現的解決方案,本文針對該解決方案進行系統(tǒng)設計,并實現了一個分布式三維仿真系統(tǒng)的原型。在實際測試中,局域網環(huán)境下可以實現流暢運行?;ヂ摼W環(huán)境下,三維地形模型和矢量數據的訪問基本流暢,精細三維模型因模型大小的不同而有所差異。一般來說,單個模型的三層LOD模型文件大小從 10 K~1000 K不等,在模型密集區(qū)域會出現較長時間的加載等待。
網絡速度仍然是制約三維仿真系統(tǒng)向網絡發(fā)展的一大瓶頸,本文僅提供了一個可行的思路,在三維精細模型文件較小的情況下可以較好地運行。網絡傳輸優(yōu)化、模型流式訪問[3]和動態(tài)LOD等都是下一步需要研究的問題。
[1]侯守明,潘亞鋒,沈志廣等.基于協(xié)同設計的三維模型數據網絡傳輸研究[J].微計算機信息,2010(6)
[2]東方道邇.TerraGate介紹[OL],http://www.east-dawn.com/pubnews/213971/20090304/1213988.jsp
[3]周云虹,李志方.流式與非流式傳輸技術分析[J].現代計算機,2002(3)