【摘 要】文章對(duì)基于Silverlight 技術(shù)的網(wǎng)絡(luò)專題地圖進(jìn)行了研究,很好的解決了傳統(tǒng)專題地圖的各種不足.分析了傳統(tǒng)專題地圖的概念、發(fā)展過(guò)程、存在問(wèn)題,對(duì)基于Silverlight技術(shù)的網(wǎng)絡(luò)專題地圖的概念、特點(diǎn)進(jìn)行了介紹,設(shè)計(jì)實(shí)現(xiàn)了基于Silverlight技術(shù)的網(wǎng)絡(luò)專題地圖發(fā)布原型系統(tǒng),為網(wǎng)絡(luò)專題地圖發(fā)布提供了一個(gè)新的解決方案。
【關(guān)鍵詞】專題地圖;網(wǎng)絡(luò)專題地圖;RIA;Silverlight
在Web2.0時(shí)代,傳統(tǒng)專題地圖已不能滿足國(guó)家、社會(huì)及普通用戶的各種需要。目前,谷歌地圖、微軟必應(yīng)地圖分別采用Ajax、Silverlight等RIA技術(shù),取得了很大成功。但是采用RIA技術(shù)開(kāi)發(fā)創(chuàng)建網(wǎng)絡(luò)專題地圖仍然處于起步階段,國(guó)內(nèi)的網(wǎng)絡(luò)專題地圖大多基于Ajax技術(shù),文章在網(wǎng)絡(luò)專題地圖系統(tǒng)中嘗試應(yīng)用Silverlight技術(shù),提高了網(wǎng)絡(luò)專題地圖的用戶體驗(yàn)和表現(xiàn)形式。
一、RIA概述
豐富互聯(lián)網(wǎng)應(yīng)用程序(Rich Internet Applications,簡(jiǎn)稱RIA),2002年首次出現(xiàn)在Macromedia的白皮書(shū)中,RIA是一種具有傳統(tǒng)桌面應(yīng)用軟件系統(tǒng)功能和特點(diǎn)的網(wǎng)絡(luò)應(yīng)用程序.RIA技術(shù)是一種在表現(xiàn)層上的技術(shù)創(chuàng)新,是具有豐富表現(xiàn)能力的客戶端技術(shù)?!案弧钡暮x是具有豐富的數(shù)據(jù)模型和用戶界面。RIA系統(tǒng)將大部分處理任務(wù)都從用戶界面端移植到客戶端,僅保留一些必要數(shù)據(jù)與服務(wù)器端進(jìn)行信息交互.RIA簡(jiǎn)化并改進(jìn)了Web應(yīng)用程序的用戶交互,提供更豐富、更具有交互性和響應(yīng)性的用戶體驗(yàn)。
二、RIA實(shí)現(xiàn)技術(shù)
(一)Ajax
Ajax是異步Javascript和XML的英文縮寫(xiě)?!癆jax”這個(gè)名詞的發(fā)明人是Jesse James Garrett,Google最先推廣并大量使用Ajax技術(shù),最常見(jiàn)的應(yīng)用有:Google Suggest、Google Maps、Gmail。
Ajax采用異步交互方式,在用戶和服務(wù)器之間引入了一個(gè)中間媒介,改變了“處理—等待”模式.可以按需獲取數(shù)據(jù),減少了冗余請(qǐng)求,減輕了服務(wù)器的負(fù)擔(dān);縮短了用戶的等待時(shí)間,在獲得用戶請(qǐng)求后不會(huì)重新繪制整個(gè)頁(yè)面,而是保持原有頁(yè)面內(nèi)容,接收數(shù)據(jù)完畢后更新相應(yīng)部分的內(nèi)容;在讀取大量數(shù)據(jù)時(shí),不會(huì)出現(xiàn)“白屏”現(xiàn)象,縮短了用戶實(shí)際和心理等待時(shí)間。
但是Ajax也存在許多不足,例如跨瀏覽器問(wèn)題;在不同的瀏覽器上,同一個(gè)程序可能會(huì)出現(xiàn)不同的表現(xiàn)效果,增加了系統(tǒng)開(kāi)發(fā)和維護(hù)的難度。
(二)JavaFX
JavaFX最初被稱為F3(Form Follows Function),主要由Sun公司的 Chris Oliver開(kāi)發(fā),2007年改名為JavaFX.JavaFX不僅可以運(yùn)行于Windows XP、Vista、Mac OS,還能在移動(dòng)操作系統(tǒng)上運(yùn)行,比如:Android、Windows Mobile。
JavaFX 腳本語(yǔ)言能夠用于編寫(xiě)前端應(yīng)用、Web 應(yīng)用的視圖或者用戶界面,不過(guò)這些都需要Java 虛擬機(jī)的支持。JavaFX 腳本為各種操作提供了聲明式、無(wú)中間程序邏輯的語(yǔ)法,這些操作包括創(chuàng)建 2D 動(dòng)畫(huà)、設(shè)置屬性或者聲明在模式和視圖對(duì)象之間的綁定依賴關(guān)系。
(三)Adobe Flex
Adobe Flash是一個(gè)高級(jí)的創(chuàng)作環(huán)境,可以在數(shù)字、網(wǎng)絡(luò)、移動(dòng)平臺(tái)上制作豐富的、高度交互性內(nèi)容。Adobe Flash是目前最成功的瀏覽器插件,使用范圍廣,技術(shù)成熟,據(jù)統(tǒng)計(jì)90%的Web瀏覽器都安裝了Adobe Flash。
Adobe Flex的優(yōu)點(diǎn)包括:大部分的瀏覽器安裝了Flash插件;跨瀏覽器、跨操作系統(tǒng);下載速度和執(zhí)行效率較高;用戶界面更漂亮;開(kāi)發(fā)人員容易學(xué)習(xí).缺點(diǎn)包括:.NET開(kāi)發(fā)者如果需要制作包括Flash內(nèi)容的網(wǎng)站,需要另外的設(shè)計(jì)工具、編程語(yǔ)言(ActionScript)以及編程環(huán)境(Flex);服務(wù)器端的.NET代碼不能與Flash內(nèi)容直接整合在一起,兩者之間的調(diào)用非常困難。
(四)微軟Silverlight
Silverlight是一個(gè)用以搭建跨平臺(tái)、跨操作系統(tǒng)的富互聯(lián)網(wǎng)應(yīng)用程序的瀏覽器插件,用以開(kāi)發(fā)下一代富媒體、高交互性的富互聯(lián)網(wǎng)應(yīng)用程序(RIAs),提高應(yīng)用程序的用戶體驗(yàn)和滿意度。
Silverlight的優(yōu)勢(shì)在于:跨平臺(tái)跨瀏覽器;是WPF的子集,極大的擴(kuò)展了瀏覽器中創(chuàng)建用戶界面的元素;使用程序員熟悉的技術(shù),如Visual Studio integrated development environment(IDE)和Expression Blend;瀏覽器插件易于下載安裝.Silverlight表現(xiàn)層框架提供了矢量圖形、動(dòng)畫(huà)、文本和圖像等,故而GIS的矢量數(shù)據(jù),點(diǎn)、線、面等幾何實(shí)體要素都可易于表達(dá),視頻播放等技術(shù)也為多媒體地圖的實(shí)現(xiàn)做了鋪墊。
通過(guò)對(duì)幾種主要RIA技術(shù)的分析比較,可以得到以下結(jié)論,Ajax是初級(jí)的RIA技術(shù);JavaFx應(yīng)用面較窄;而Flex、Silverlight具有跨瀏覽器這一特性,同時(shí)可以無(wú)縫的集成多媒體流數(shù)據(jù),具有豐富的交互模型.Flex已經(jīng)比較成熟,且應(yīng)用范圍很廣,但獨(dú)成一系,.Net程序員需要重新學(xué)習(xí)Flex編程體系;Silverlight以微軟為后臺(tái)支撐,許多WebGIS開(kāi)發(fā)人員更加青睞于Silverlight.因此文章選擇Silverlight作為開(kāi)發(fā)網(wǎng)絡(luò)專題地圖的RIA技術(shù)。
三、基于Silverlight的網(wǎng)絡(luò)專題地圖體系架構(gòu)
基于RIA的網(wǎng)絡(luò)專題地圖發(fā)布系統(tǒng)是一種提供專題地圖服務(wù)的WebGIS系統(tǒng),包含多層架構(gòu),如圖1所示,包括:應(yīng)用系統(tǒng)層、服務(wù)接口層、GIS服務(wù)層、數(shù)據(jù)存儲(chǔ)層以及基礎(chǔ)支撐層,不同之處在于基礎(chǔ)支撐層、服務(wù)接口層和表現(xiàn)層。
(一)基礎(chǔ)支撐層
基于RIA技術(shù)的WebGIS系統(tǒng)的交互性更強(qiáng),對(duì)用戶界面和用戶體驗(yàn)的要求更高,用戶既是空間信息的瀏覽者,也可以是空間信息的制造者和發(fā)布者.在模式上由單純的“讀”向“寫(xiě)”以及“共同建設(shè)”發(fā)展;由被動(dòng)地接收互聯(lián)網(wǎng)信息向主動(dòng)創(chuàng)造互聯(lián)網(wǎng)信息發(fā)展。
(二)數(shù)據(jù)存儲(chǔ)層
網(wǎng)絡(luò)專題地圖發(fā)布系統(tǒng)所需數(shù)據(jù)可以分為空間數(shù)據(jù)和專題數(shù)據(jù),空間數(shù)據(jù)主要包括遙感影像、矢量地圖、柵格地圖,是地理底圖的來(lái)源.專題數(shù)據(jù)主要是指多媒體、文本資料以及其他屬性數(shù)據(jù)。
網(wǎng)絡(luò)專題地圖發(fā)布系統(tǒng)數(shù)據(jù)來(lái)源廣泛,數(shù)據(jù)量大,必須進(jìn)行科學(xué)的組織、存儲(chǔ)、管理.文章數(shù)據(jù)以GeoDatabase空間數(shù)據(jù)模型的形式存儲(chǔ)管理,空間數(shù)據(jù)存儲(chǔ)于空間信息數(shù)據(jù)庫(kù),而專題數(shù)據(jù)存儲(chǔ)于專題數(shù)據(jù)庫(kù)中,通過(guò)拓?fù)浜陀行缘纫?guī)則,形成對(duì)真實(shí)世界的模擬.數(shù)據(jù)庫(kù)是整個(gè)系統(tǒng)的底層,存儲(chǔ)了包括空間數(shù)據(jù)和屬性數(shù)據(jù),為整個(gè)系統(tǒng)提供數(shù)據(jù)源保障。
(三)GIS服務(wù)層
GIS服務(wù)層包括GIS服務(wù)器、集群服務(wù)等核心組件,采用HTTP標(biāo)準(zhǔn)的端口發(fā)布GIS服務(wù),承載著所有GIS數(shù)據(jù)的處理任務(wù),它可以從Web服務(wù)層接收GIS請(qǐng)求,并對(duì)其進(jìn)行處理,最終將處理的結(jié)果返回給客戶端.在GIS服務(wù)層可以同時(shí)部署多個(gè)GIS服務(wù)器為不同的GIS數(shù)據(jù)提供服務(wù),這些GIS服務(wù)器可以分別部署在不同的計(jì)算機(jī)上,也可以同時(shí)安置在一臺(tái)高性能的計(jì)算機(jī)中。
(四)服務(wù)接口層
服務(wù)接口層連接著表現(xiàn)層與GIS服務(wù)層,用戶及開(kāi)發(fā)者通過(guò)服務(wù)接口層同GIS服務(wù)器進(jìn)行交互.常用的Web服務(wù)類型有基于SOAP、REST以及OGC的Web服務(wù).對(duì)廣大開(kāi)發(fā)者來(lái)說(shuō),基于SOAP的Web服務(wù)使用復(fù)雜,開(kāi)發(fā)難度較大。
基于REST的Web服務(wù)將GIS基礎(chǔ)和核心功能進(jìn)行封裝,以URL的方式提供給用戶,如常見(jiàn)的地圖展示、圖層訪問(wèn)、空間幾何查詢、高級(jí)分析功能等等..文章采用基于REST風(fēng)格架構(gòu)的Web服務(wù),將復(fù)雜的GIS功能進(jìn)行封裝,開(kāi)發(fā)者通過(guò)簡(jiǎn)單的URL網(wǎng)址實(shí)現(xiàn)對(duì)Web服務(wù)的訪問(wèn)。
(五)表現(xiàn)層
WebGIS系統(tǒng)通過(guò)表現(xiàn)層為用戶顯示空間數(shù)據(jù),并獲取用戶輸入信息,向更深層次的服務(wù)接口層、GIS服務(wù)層以及數(shù)據(jù)存儲(chǔ)層發(fā)送用戶請(qǐng)求,再將獲取的處理結(jié)果呈現(xiàn)給客戶[8].Silverlight技術(shù)應(yīng)用于WebGIS系統(tǒng),體現(xiàn)最明顯的當(dāng)屬表現(xiàn)層,首先處于表現(xiàn)層的用戶界面更加友好;其次,將WebGIS的部分功能轉(zhuǎn)移到表現(xiàn)層中,在客戶端可以進(jìn)行完整的數(shù)據(jù)處理,因此不需要與服務(wù)器進(jìn)行交互,客戶端無(wú)需刷新整個(gè)頁(yè)面,減少用戶等待時(shí)間,提高用戶體驗(yàn),減輕了服務(wù)器的負(fù)擔(dān)。通過(guò)基于瀏覽器的地理信息服務(wù)應(yīng)用集成技術(shù),在瀏覽器中能對(duì)地理信息、圖形標(biāo)繪、動(dòng)態(tài)目標(biāo)等各類以服務(wù)形式提供的圖形顯示功能進(jìn)行疊加顯示、精確定位和交互操控,實(shí)現(xiàn)圖形層次的集成。
四、基于RIA的網(wǎng)絡(luò)專題地圖實(shí)現(xiàn)
文章以世博會(huì)為主題,設(shè)計(jì)實(shí)現(xiàn)了網(wǎng)絡(luò)專題地圖原型系統(tǒng).生動(dòng)形象的展示世博會(huì)游客統(tǒng)計(jì)的專題信息.采用專題地圖表達(dá)方式,以柱狀圖、直線圖、曲線圖、餅狀圖等形式表現(xiàn)統(tǒng)計(jì)數(shù)據(jù),提高了用戶對(duì)地圖信息的認(rèn)識(shí)和理解
(一)柱狀專題圖
以柱狀圖的形式顯示每個(gè)場(chǎng)館所有月份的參觀人數(shù),進(jìn)行縱向比較.如圖2所示。
(二)餅狀專題圖
以曲線圖的形式顯示每個(gè)場(chǎng)館所有月份的參觀人數(shù),直觀的顯示每月參觀人數(shù)所占總參觀人數(shù)的百分比.并能通過(guò)餅狀圖的大小對(duì)兩個(gè)場(chǎng)館游客總數(shù)進(jìn)行比較分析.如圖3所示。
五、結(jié)語(yǔ)
隨著GIS的發(fā)展,傳統(tǒng)專題地圖已不能滿足國(guó)家、社會(huì)及普通用戶的各種需要,文章提出的基于RIA的網(wǎng)絡(luò)專題地圖,是專題地圖與WebGIS技術(shù)結(jié)合的產(chǎn)物,可以很好的解決傳統(tǒng)專題地圖的各種不足。
參考文獻(xiàn)
[1] 吳濤,戚銘堯,黎勇等.WebGIS開(kāi)發(fā)中的R IA 技術(shù)應(yīng)用研究[J].測(cè)繪通報(bào),2006(06):34-37.
[2] 施偉偉,張蓓.征服Ajax:Web2.0快速入門(mén)與項(xiàng)目實(shí)踐(.net)[M].北京:人民郵電出版社.
[3] GAIL.ERSON PAUL ANDERSON.Essential JavaFX [M].
[4] http://www.adobe.com/products/flash/,Adobe Flash Definition[EB/OL].
[5] Ashish Ghoda.Introducing Silverlight4[M].
[6] 王天寶,王爾琪等.基于Silverlight的WebGIS客戶端技術(shù)與應(yīng)用試驗(yàn)[J].地球信息科學(xué)學(xué)報(bào),2010(01):69-75.
[7] 鐘廣銳.基于ArcGIS Flex API 的WebGIS 設(shè)計(jì)[J].測(cè)繪科學(xué),2012(04):1-5.
[8] 方坤.基于RIA技術(shù)的構(gòu)件式WebGIS表現(xiàn)層技術(shù)研究[D].北京:中國(guó)地質(zhì)大學(xué),2010.
[9] 李博霏,李欣,李艷明等.基于瀏覽器的地理信息服務(wù)客戶端技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2011(09):3031-3035.
作者簡(jiǎn)介:劉軍武,男,畢業(yè)于北京印刷學(xué)院印刷包裝工程系,研究方向:地圖制圖。