閔星 ,曹偉,蔣華
(1.天津市測繪院,天津 300381; 2.天津大港油田灘海開發(fā)公司,天津 300280)
二維GIS 技術具有成熟的空間分析、數(shù)據(jù)編輯等功能,三維GIS 虛擬現(xiàn)實更加逼真,因此,二三維一體化研究正好令兩者優(yōu)勢互補,成為三維GIS 進一步成熟前一種可行的GIS 應用系統(tǒng)解決方案[1]。本文設計一個二三維聯(lián)動WebGIS 方案,不僅構建二三維聯(lián)動機制,實現(xiàn)了二三維的一體化;還能分別作為二維、三維WebGIS 獨立運行,實現(xiàn)了二維、三維和二三維聯(lián)動的“三合一”。
面向服務的WebGIS 已成為GIS 發(fā)展的大趨勢,富互聯(lián)網(wǎng)應用技術(Rich Internet Applications,RIA)的出現(xiàn)讓WebGIS 愈發(fā)得到青睞。RIA 技術緩解了傳統(tǒng)WebGIS 胖服務器模式下服務器端的壓力,具有更加靈敏的反應速度和更令人感興趣的可視化特性[2]。本文采用了主流RIA 技術之一的Silverlight 技術,有效平衡了客戶端和服務器端負載,明顯提高了系統(tǒng)效率和界面的表現(xiàn)力。
對于互聯(lián)網(wǎng)用戶來說,Silverlight 是一個類似于Adobe Flash 的插件程序,其下載體積較小(不到2 MB),可以在用戶打開包含該內(nèi)容網(wǎng)站時自動安裝。對于開發(fā)設計人員而言,它是一種高效、免費、融合了微軟多種技術的Web 呈現(xiàn)技術,提供一套開發(fā)框架,實現(xiàn)了與ASP.NET、AJAX 等Web 開發(fā)環(huán)境的無縫連接。相比于其他客戶端應用系統(tǒng)實現(xiàn)技術,Silverlight 具有以下優(yōu)勢:
(1)提高了系統(tǒng)效率。Silverlight 程序本質(zhì)上是將功能包(xap 文件)下載到客戶端,充分利用客戶端的計算處理能力[3]。
(2)融合于其他Web 應用程序。作為一個客戶端插件,可以和現(xiàn)有網(wǎng)站設計融洽共處。與GIS 技術結合,更能將地圖功能模塊方便地嵌入現(xiàn)有網(wǎng)站。
(3)良好的用戶體驗。Silverlight 使用Windows Media 技術,可以有效地創(chuàng)造出內(nèi)容豐富、界面絢麗的Web 應用程序。
(4)支持跨瀏覽器、跨平臺。Silverlight 可以在所有流行瀏覽器中運行,并能運行于各主流操作系統(tǒng)。
作為城市級別的聯(lián)動WebGIS 系統(tǒng),既要考慮二三維聯(lián)動平臺的實現(xiàn)效果,還得考慮與專題數(shù)據(jù)結合的有效性與靈活性,系統(tǒng)的構建應滿足如下要求:
(1)采用網(wǎng)站形式訪問,支持多用戶并發(fā)訪問。
(2)數(shù)據(jù)顯示友好,包括二維矢量數(shù)據(jù)、三維模型數(shù)據(jù)、二三維聯(lián)動效果以及專題屬性數(shù)據(jù)的顯示。
(3)支持數(shù)據(jù)動態(tài)更新,保持數(shù)據(jù)的實時性。
(4)支持多數(shù)據(jù)集成顯示,數(shù)據(jù)源可能以不同的格式來自于不同的服務器、不同的數(shù)據(jù)庫。
根據(jù)系統(tǒng)構建的要求,總體架構采用如下三層體系模式:數(shù)據(jù)服務層、Silverlight 頁面服務層、用戶層,架構設計圖如圖1所示。
在數(shù)據(jù)服務層,充分應用Web Service 技術,將對二維矢量數(shù)據(jù)、三維模型數(shù)據(jù)、屬性數(shù)據(jù)的訪問和操作均作為服務發(fā)布;Silverlight 頁面服務將在數(shù)據(jù)服務層提供的服務接口融合到具體的應用系統(tǒng),并通過xaml、silverlight 基礎類庫、ArcGIS 及Skyline 開發(fā)接口實現(xiàn)系統(tǒng)功能;在用戶層,僅需具備Web 瀏覽器及Silverlight 插件即可。

圖1 系統(tǒng)架構設計圖
Silverlight 應用程序以網(wǎng)站形式運行,實現(xiàn)多用戶的并發(fā)訪問;RIA 特性能以地圖、表格、統(tǒng)計圖表等形式更加多樣化地展示數(shù)據(jù),有效增強了數(shù)據(jù)顯示的友好性;采用的異步機制既能消除數(shù)據(jù)之間的耦合性、增強系統(tǒng)的共享性,同時又能保證數(shù)據(jù)獲取的動態(tài)性以及數(shù)據(jù)信息的實時性;Web Service 技術的采用不僅解決異構GIS 平臺之間的數(shù)據(jù)集成與共享問題,同時實現(xiàn)數(shù)據(jù)共享與功能共享的并舉[3]。綜上所述,架構設計達到了系統(tǒng)的構建要求。
數(shù)據(jù)服務層是系統(tǒng)架構的支柱,而數(shù)據(jù)庫又是數(shù)據(jù)服務層的基礎。本系統(tǒng)的數(shù)據(jù)庫建設主要包括以下三個方面:
(1)二維矢量數(shù)據(jù)庫,包括基礎地形數(shù)據(jù)和專題矢量數(shù)據(jù)(管線數(shù)據(jù)),均以Oracle +ArcSDE 方式存儲于各自獨立的數(shù)據(jù)集(Dataset),并通過ArcGIS Server分別以WMS 服務和WFS 服務發(fā)布。
(2)三維模型,利用Skyline 的三維建模工具Terra-Builder 將遙感影像和DEM 數(shù)據(jù)進行讀取、轉換等處理以創(chuàng)建MPT 三維場景文件。再利用TerraExlporer 基于MPT 場景導入二維矢量地形圖層、三維建筑物圖層、三維專題圖層(管線圖層)等,最終生成FLY 配置文件。三維專題圖層中實體的坐標信息均來源于二維矢量數(shù)據(jù)庫,保證了三維與二維專題數(shù)據(jù)的一致性,管點、管線及建筑物等模型均通過Web Service 從服務器讀?。?]。
(3)屬性數(shù)據(jù)庫,包括專題屬性數(shù)據(jù)和系統(tǒng)數(shù)據(jù)(用戶、日志等),屬性數(shù)據(jù)也是通過Web Service 從Oracle 服務器獲取。
系統(tǒng)總體框架上分為二維系統(tǒng)、三維系統(tǒng)、二三維聯(lián)動系統(tǒng),應用Silverlight 的Grid 容器,這三部分均可獨立運行,并可實現(xiàn)三者之間的實時自由快速切換[5]。開發(fā)平臺選用VisualStudio2010(C#),其中二維系統(tǒng)功能實現(xiàn)利用ESRI 公司針對Silverlight 開發(fā)的免費程序集ArcGIS API for Silverlight[6],三維系統(tǒng)功能實現(xiàn)利用Skyline 的TerraExplorer Pro。雖然Silverlight 并不支持Skyline 的三維插件,但支持向其中嵌入HTML 網(wǎng)頁(這里筆者開發(fā)了一個基于Silverlight 的小插件,提供URL 即可),再將Skyline 的三維插件嵌入該HTML 網(wǎng)頁。鑒于此模式,三維具體功能實現(xiàn)采用TerraExplorer API for Javascript[7],與Silverlight 以及二維系統(tǒng)之間的交互通過C#與Javascript 的交互實現(xiàn)。獨立運行的二維系統(tǒng)及三維系統(tǒng)效果圖如圖2及圖3所示。

圖2 獨立運行的二維系統(tǒng)效果圖

圖3 獨立運行的三維系統(tǒng)效果圖
鑒于二維與三維的區(qū)別及專題數(shù)據(jù)的業(yè)務需求,本系統(tǒng)中二維系統(tǒng)與三維系統(tǒng)共同的功能模塊主要有地圖基本功能、快速定位、查詢與統(tǒng)計、空間量測、剖面分析等。此外,二維系統(tǒng)獨具的功能模塊有數(shù)據(jù)編輯(包括屬性編輯和幾何編輯)和空間分析(包括最短路徑分析、緩沖區(qū)分析等);三維系統(tǒng)獨具的功能模塊則是顯示設置(包括陽光、透明度等)和縱深分析(包括挖坑土方量計算、地下管線巡線等)。
(1)數(shù)據(jù)可視化層面的一致性
二三維聯(lián)動系統(tǒng)中,通過坐標轉換及聯(lián)動模式下二三維交互時的事件觸發(fā)機制保證兩者地圖視圖顯示的同步,這是數(shù)據(jù)可視化層面二三維聯(lián)動的實質(zhì)[8]。本系統(tǒng)中,二維地圖與三維地圖均采用國家80 坐標系,在兩者的鼠標事件響應函數(shù)中以及視窗刷新事件響應函數(shù)中均建立了坐標傳輸機制,通過當前視圖的中心點(CenterSign)及當前視窗(Envelope)來控制兩者位置變化的一致性。聯(lián)動模式下,三維地圖中視場角(Field of View,F(xiàn)OV)默認為90°,實現(xiàn)效果如圖4所示。

圖4 數(shù)據(jù)可視化一致性效果圖

圖5 空間分析一致性效果圖
(2)數(shù)據(jù)操作層面的一致性
三維平臺通過WFS 共享二維平臺的矢量數(shù)據(jù)源,也即是三維地圖中的二維矢量圖層均對應于二維地圖中的某一圖層,通過這種對應保證了二三維平臺在進行數(shù)據(jù)查詢、空間分析、數(shù)據(jù)編輯等操作時的數(shù)據(jù)表現(xiàn)一致性,這是數(shù)據(jù)操作層面的二三維聯(lián)動的實質(zhì)[8]。本系統(tǒng)中,三維平臺通過動態(tài)數(shù)據(jù)加載功能實時加載并直觀展示二維空間分析的結果,達到了數(shù)據(jù)操作層面的一致性。效果如圖5所示。
本文闡述一個二三維聯(lián)動WebGIS 系統(tǒng)的設計思路及實現(xiàn)方式,基于Silverlight 技術成功地將當前的主流二維GIS 平臺(ArcGIS)與主流三維GIS 平臺(Skyline)結合到一起,實現(xiàn)了二三維的一體化,并實際應用于天津市靜??h二三維聯(lián)動地下管線信息管理系統(tǒng)的建設。本文的研究為解決傳統(tǒng)WebGIS 系統(tǒng)胖服務器端的弊病提供了思路,同時擴展了WebGIS 系統(tǒng)的用戶界面,對促進以網(wǎng)絡為載體的GIS 與城市應用服務的發(fā)展具有積極意義,為城市級別WebGIS 系統(tǒng)的開發(fā)提供了一種新穎、可行的嘗試。
[1]高飛,尤磊,阮紅利.基于開源項目的二三維聯(lián)動GIS 系統(tǒng)的設計與實現(xiàn)[J].測繪科學,2009(10):144 ~145.
[2]郭淑芬,于志剛,李成名等.基于Flex 開發(fā)綜合市情系統(tǒng)的研究與應用[J].測繪通報,2012(10):88 ~91.
[3]羅智勇,羅娟,賴德軍.RIA 技術方案下的插件式WebGIS系統(tǒng)架構設計[J].測繪科學,2012(11):160 ~163.
[4]唐楨,張新長,曹凱濱.基于Skyline 的三維技術在城市規(guī)劃中的應用研究[J].測繪通報,2010(5):10 ~12.
[5]徐曉華.基于Silverlight 的電子地圖的研究與設計[D].杭州:浙江工業(yè)大學,2009:35 ~36.
[6]ESRI.ArcGIS Resource Center:ArcGIS API for Silverlight[EB/OL].http://help.a(chǎn)rcgis.com/en/webapi/silverlight/.
[7]北京東方道邇信息技術股份有限公司GIS 事業(yè)部.TerraExplorer Pro 二次開發(fā)用戶手冊V6.1[EB/OL].http://download.csdn.net/download/xslz_grf/4490303.
[8]周順平,魏利萍,萬波等.多源異構空間數(shù)據(jù)集成的研究[J].測繪信息與工程,2005,30(4):30 ~32.