閔星 ,曹偉,蔣華
(1.天津市測(cè)繪院,天津 300381; 2.天津大港油田灘海開(kāi)發(fā)公司,天津 300280)
二維GIS 技術(shù)具有成熟的空間分析、數(shù)據(jù)編輯等功能,三維GIS 虛擬現(xiàn)實(shí)更加逼真,因此,二三維一體化研究正好令兩者優(yōu)勢(shì)互補(bǔ),成為三維GIS 進(jìn)一步成熟前一種可行的GIS 應(yīng)用系統(tǒng)解決方案[1]。本文設(shè)計(jì)一個(gè)二三維聯(lián)動(dòng)WebGIS 方案,不僅構(gòu)建二三維聯(lián)動(dòng)機(jī)制,實(shí)現(xiàn)了二三維的一體化;還能分別作為二維、三維WebGIS 獨(dú)立運(yùn)行,實(shí)現(xiàn)了二維、三維和二三維聯(lián)動(dòng)的“三合一”。
面向服務(wù)的WebGIS 已成為GIS 發(fā)展的大趨勢(shì),富互聯(lián)網(wǎng)應(yīng)用技術(shù)(Rich Internet Applications,RIA)的出現(xiàn)讓W(xué)ebGIS 愈發(fā)得到青睞。RIA 技術(shù)緩解了傳統(tǒng)WebGIS 胖服務(wù)器模式下服務(wù)器端的壓力,具有更加靈敏的反應(yīng)速度和更令人感興趣的可視化特性[2]。本文采用了主流RIA 技術(shù)之一的Silverlight 技術(shù),有效平衡了客戶端和服務(wù)器端負(fù)載,明顯提高了系統(tǒng)效率和界面的表現(xiàn)力。
對(duì)于互聯(lián)網(wǎng)用戶來(lái)說(shuō),Silverlight 是一個(gè)類似于Adobe Flash 的插件程序,其下載體積較小(不到2 MB),可以在用戶打開(kāi)包含該內(nèi)容網(wǎng)站時(shí)自動(dòng)安裝。對(duì)于開(kāi)發(fā)設(shè)計(jì)人員而言,它是一種高效、免費(fèi)、融合了微軟多種技術(shù)的Web 呈現(xiàn)技術(shù),提供一套開(kāi)發(fā)框架,實(shí)現(xiàn)了與ASP.NET、AJAX 等Web 開(kāi)發(fā)環(huán)境的無(wú)縫連接。相比于其他客戶端應(yīng)用系統(tǒng)實(shí)現(xiàn)技術(shù),Silverlight 具有以下優(yōu)勢(shì):
(1)提高了系統(tǒng)效率。Silverlight 程序本質(zhì)上是將功能包(xap 文件)下載到客戶端,充分利用客戶端的計(jì)算處理能力[3]。
(2)融合于其他Web 應(yīng)用程序。作為一個(gè)客戶端插件,可以和現(xiàn)有網(wǎng)站設(shè)計(jì)融洽共處。與GIS 技術(shù)結(jié)合,更能將地圖功能模塊方便地嵌入現(xiàn)有網(wǎng)站。
(3)良好的用戶體驗(yàn)。Silverlight 使用Windows Media 技術(shù),可以有效地創(chuàng)造出內(nèi)容豐富、界面絢麗的Web 應(yīng)用程序。
(4)支持跨瀏覽器、跨平臺(tái)。Silverlight 可以在所有流行瀏覽器中運(yùn)行,并能運(yùn)行于各主流操作系統(tǒng)。
作為城市級(jí)別的聯(lián)動(dòng)WebGIS 系統(tǒng),既要考慮二三維聯(lián)動(dòng)平臺(tái)的實(shí)現(xiàn)效果,還得考慮與專題數(shù)據(jù)結(jié)合的有效性與靈活性,系統(tǒng)的構(gòu)建應(yīng)滿足如下要求:
(1)采用網(wǎng)站形式訪問(wèn),支持多用戶并發(fā)訪問(wèn)。
(2)數(shù)據(jù)顯示友好,包括二維矢量數(shù)據(jù)、三維模型數(shù)據(jù)、二三維聯(lián)動(dòng)效果以及專題屬性數(shù)據(jù)的顯示。
(3)支持?jǐn)?shù)據(jù)動(dòng)態(tài)更新,保持?jǐn)?shù)據(jù)的實(shí)時(shí)性。
(4)支持多數(shù)據(jù)集成顯示,數(shù)據(jù)源可能以不同的格式來(lái)自于不同的服務(wù)器、不同的數(shù)據(jù)庫(kù)。
根據(jù)系統(tǒng)構(gòu)建的要求,總體架構(gòu)采用如下三層體系模式:數(shù)據(jù)服務(wù)層、Silverlight 頁(yè)面服務(wù)層、用戶層,架構(gòu)設(shè)計(jì)圖如圖1所示。
在數(shù)據(jù)服務(wù)層,充分應(yīng)用Web Service 技術(shù),將對(duì)二維矢量數(shù)據(jù)、三維模型數(shù)據(jù)、屬性數(shù)據(jù)的訪問(wèn)和操作均作為服務(wù)發(fā)布;Silverlight 頁(yè)面服務(wù)將在數(shù)據(jù)服務(wù)層提供的服務(wù)接口融合到具體的應(yīng)用系統(tǒng),并通過(guò)xaml、silverlight 基礎(chǔ)類庫(kù)、ArcGIS 及Skyline 開(kāi)發(fā)接口實(shí)現(xiàn)系統(tǒng)功能;在用戶層,僅需具備Web 瀏覽器及Silverlight 插件即可。
圖1 系統(tǒng)架構(gòu)設(shè)計(jì)圖
Silverlight 應(yīng)用程序以網(wǎng)站形式運(yùn)行,實(shí)現(xiàn)多用戶的并發(fā)訪問(wèn);RIA 特性能以地圖、表格、統(tǒng)計(jì)圖表等形式更加多樣化地展示數(shù)據(jù),有效增強(qiáng)了數(shù)據(jù)顯示的友好性;采用的異步機(jī)制既能消除數(shù)據(jù)之間的耦合性、增強(qiáng)系統(tǒng)的共享性,同時(shí)又能保證數(shù)據(jù)獲取的動(dòng)態(tài)性以及數(shù)據(jù)信息的實(shí)時(shí)性;Web Service 技術(shù)的采用不僅解決異構(gòu)GIS 平臺(tái)之間的數(shù)據(jù)集成與共享問(wèn)題,同時(shí)實(shí)現(xiàn)數(shù)據(jù)共享與功能共享的并舉[3]。綜上所述,架構(gòu)設(shè)計(jì)達(dá)到了系統(tǒng)的構(gòu)建要求。
數(shù)據(jù)服務(wù)層是系統(tǒng)架構(gòu)的支柱,而數(shù)據(jù)庫(kù)又是數(shù)據(jù)服務(wù)層的基礎(chǔ)。本系統(tǒng)的數(shù)據(jù)庫(kù)建設(shè)主要包括以下三個(gè)方面:
(1)二維矢量數(shù)據(jù)庫(kù),包括基礎(chǔ)地形數(shù)據(jù)和專題矢量數(shù)據(jù)(管線數(shù)據(jù)),均以O(shè)racle +ArcSDE 方式存儲(chǔ)于各自獨(dú)立的數(shù)據(jù)集(Dataset),并通過(guò)ArcGIS Server分別以WMS 服務(wù)和WFS 服務(wù)發(fā)布。
(2)三維模型,利用Skyline 的三維建模工具Terra-Builder 將遙感影像和DEM 數(shù)據(jù)進(jìn)行讀取、轉(zhuǎn)換等處理以創(chuàng)建MPT 三維場(chǎng)景文件。再利用TerraExlporer 基于MPT 場(chǎng)景導(dǎo)入二維矢量地形圖層、三維建筑物圖層、三維專題圖層(管線圖層)等,最終生成FLY 配置文件。三維專題圖層中實(shí)體的坐標(biāo)信息均來(lái)源于二維矢量數(shù)據(jù)庫(kù),保證了三維與二維專題數(shù)據(jù)的一致性,管點(diǎn)、管線及建筑物等模型均通過(guò)Web Service 從服務(wù)器讀?。?]。
(3)屬性數(shù)據(jù)庫(kù),包括專題屬性數(shù)據(jù)和系統(tǒng)數(shù)據(jù)(用戶、日志等),屬性數(shù)據(jù)也是通過(guò)Web Service 從Oracle 服務(wù)器獲取。
系統(tǒng)總體框架上分為二維系統(tǒng)、三維系統(tǒng)、二三維聯(lián)動(dòng)系統(tǒng),應(yīng)用Silverlight 的Grid 容器,這三部分均可獨(dú)立運(yùn)行,并可實(shí)現(xiàn)三者之間的實(shí)時(shí)自由快速切換[5]。開(kāi)發(fā)平臺(tái)選用VisualStudio2010(C#),其中二維系統(tǒng)功能實(shí)現(xiàn)利用ESRI 公司針對(duì)Silverlight 開(kāi)發(fā)的免費(fèi)程序集ArcGIS API for Silverlight[6],三維系統(tǒng)功能實(shí)現(xiàn)利用Skyline 的TerraExplorer Pro。雖然Silverlight 并不支持Skyline 的三維插件,但支持向其中嵌入HTML 網(wǎng)頁(yè)(這里筆者開(kāi)發(fā)了一個(gè)基于Silverlight 的小插件,提供URL 即可),再將Skyline 的三維插件嵌入該HTML 網(wǎng)頁(yè)。鑒于此模式,三維具體功能實(shí)現(xiàn)采用TerraExplorer API for Javascript[7],與Silverlight 以及二維系統(tǒng)之間的交互通過(guò)C#與Javascript 的交互實(shí)現(xiàn)。獨(dú)立運(yùn)行的二維系統(tǒng)及三維系統(tǒng)效果圖如圖2及圖3所示。
圖2 獨(dú)立運(yùn)行的二維系統(tǒng)效果圖
圖3 獨(dú)立運(yùn)行的三維系統(tǒng)效果圖
鑒于二維與三維的區(qū)別及專題數(shù)據(jù)的業(yè)務(wù)需求,本系統(tǒng)中二維系統(tǒng)與三維系統(tǒng)共同的功能模塊主要有地圖基本功能、快速定位、查詢與統(tǒng)計(jì)、空間量測(cè)、剖面分析等。此外,二維系統(tǒng)獨(dú)具的功能模塊有數(shù)據(jù)編輯(包括屬性編輯和幾何編輯)和空間分析(包括最短路徑分析、緩沖區(qū)分析等);三維系統(tǒng)獨(dú)具的功能模塊則是顯示設(shè)置(包括陽(yáng)光、透明度等)和縱深分析(包括挖坑土方量計(jì)算、地下管線巡線等)。
(1)數(shù)據(jù)可視化層面的一致性
二三維聯(lián)動(dòng)系統(tǒng)中,通過(guò)坐標(biāo)轉(zhuǎn)換及聯(lián)動(dòng)模式下二三維交互時(shí)的事件觸發(fā)機(jī)制保證兩者地圖視圖顯示的同步,這是數(shù)據(jù)可視化層面二三維聯(lián)動(dòng)的實(shí)質(zhì)[8]。本系統(tǒng)中,二維地圖與三維地圖均采用國(guó)家80 坐標(biāo)系,在兩者的鼠標(biāo)事件響應(yīng)函數(shù)中以及視窗刷新事件響應(yīng)函數(shù)中均建立了坐標(biāo)傳輸機(jī)制,通過(guò)當(dāng)前視圖的中心點(diǎn)(CenterSign)及當(dāng)前視窗(Envelope)來(lái)控制兩者位置變化的一致性。聯(lián)動(dòng)模式下,三維地圖中視場(chǎng)角(Field of View,F(xiàn)OV)默認(rèn)為90°,實(shí)現(xiàn)效果如圖4所示。
圖4 數(shù)據(jù)可視化一致性效果圖
圖5 空間分析一致性效果圖
(2)數(shù)據(jù)操作層面的一致性
三維平臺(tái)通過(guò)WFS 共享二維平臺(tái)的矢量數(shù)據(jù)源,也即是三維地圖中的二維矢量圖層均對(duì)應(yīng)于二維地圖中的某一圖層,通過(guò)這種對(duì)應(yīng)保證了二三維平臺(tái)在進(jìn)行數(shù)據(jù)查詢、空間分析、數(shù)據(jù)編輯等操作時(shí)的數(shù)據(jù)表現(xiàn)一致性,這是數(shù)據(jù)操作層面的二三維聯(lián)動(dòng)的實(shí)質(zhì)[8]。本系統(tǒng)中,三維平臺(tái)通過(guò)動(dòng)態(tài)數(shù)據(jù)加載功能實(shí)時(shí)加載并直觀展示二維空間分析的結(jié)果,達(dá)到了數(shù)據(jù)操作層面的一致性。效果如圖5所示。
本文闡述一個(gè)二三維聯(lián)動(dòng)WebGIS 系統(tǒng)的設(shè)計(jì)思路及實(shí)現(xiàn)方式,基于Silverlight 技術(shù)成功地將當(dāng)前的主流二維GIS 平臺(tái)(ArcGIS)與主流三維GIS 平臺(tái)(Skyline)結(jié)合到一起,實(shí)現(xiàn)了二三維的一體化,并實(shí)際應(yīng)用于天津市靜??h二三維聯(lián)動(dòng)地下管線信息管理系統(tǒng)的建設(shè)。本文的研究為解決傳統(tǒng)WebGIS 系統(tǒng)胖服務(wù)器端的弊病提供了思路,同時(shí)擴(kuò)展了WebGIS 系統(tǒng)的用戶界面,對(duì)促進(jìn)以網(wǎng)絡(luò)為載體的GIS 與城市應(yīng)用服務(wù)的發(fā)展具有積極意義,為城市級(jí)別WebGIS 系統(tǒng)的開(kāi)發(fā)提供了一種新穎、可行的嘗試。
[1]高飛,尤磊,阮紅利.基于開(kāi)源項(xiàng)目的二三維聯(lián)動(dòng)GIS 系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪科學(xué),2009(10):144 ~145.
[2]郭淑芬,于志剛,李成名等.基于Flex 開(kāi)發(fā)綜合市情系統(tǒng)的研究與應(yīng)用[J].測(cè)繪通報(bào),2012(10):88 ~91.
[3]羅智勇,羅娟,賴德軍.RIA 技術(shù)方案下的插件式WebGIS系統(tǒng)架構(gòu)設(shè)計(jì)[J].測(cè)繪科學(xué),2012(11):160 ~163.
[4]唐楨,張新長(zhǎng),曹凱濱.基于Skyline 的三維技術(shù)在城市規(guī)劃中的應(yīng)用研究[J].測(cè)繪通報(bào),2010(5):10 ~12.
[5]徐曉華.基于Silverlight 的電子地圖的研究與設(shè)計(jì)[D].杭州:浙江工業(yè)大學(xué),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]北京東方道邇信息技術(shù)股份有限公司GIS 事業(yè)部.TerraExplorer Pro 二次開(kāi)發(fā)用戶手冊(cè)V6.1[EB/OL].http://download.csdn.net/download/xslz_grf/4490303.
[8]周順平,魏利萍,萬(wàn)波等.多源異構(gòu)空間數(shù)據(jù)集成的研究[J].測(cè)繪信息與工程,2005,30(4):30 ~32.