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

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

圖2 獨立運行的二維系統效果圖

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

圖4 數據可視化一致性效果圖

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