WebGIS技術
隨著計算機技術、網(wǎng)絡技術、數(shù)據(jù)庫技術等的發(fā)展以及應用的不斷深化,GIS技術的發(fā)展呈現(xiàn)出新的特點和趨勢,基于互聯(lián)網(wǎng)的Web GIS就是其中之一。Web GIS除了應用于傳統(tǒng)的國土、資源、環(huán)境等政府管理領域外,也正在促進與老百姓生活息息相關的車載導航、移動位置服務、智能交通、搶險救災、城市設施管理、現(xiàn)代物流等產(chǎn)業(yè)的迅速發(fā)展。
Web開發(fā)技術的發(fā)展
Web開發(fā)技術的發(fā)展可以粗略劃分成以下幾個階段:
(1)靜態(tài)內(nèi)容階段
在這個最初的階段,使用Web的主要是一些研究機構。Web由大量的靜態(tài)HTML文檔組成,其中大多是一些學術論文。Web服務器可以被看作是支持超文本的共享文件服務器。
(2)CGI程序階段
在這個階段,Web服務器增加了一些編程API。通過這些API編寫的應用程序,可以向客戶端提供一些動態(tài)變化的內(nèi)容。Web服務器與應用程序之間的通信,通過CGI(Common Gateway Interface)協(xié)議完成,應用程序被稱作CGI程序。
(3)腳本語言階段
在這個階段,服務器端出現(xiàn)了ASP、PHP、JSP、ColdFusion等支持會話(Session)的腳本語言技術,瀏覽器端出現(xiàn)了Java Applet、Javascript等技術。使用這些技術,可以提供更加豐富的動態(tài)內(nèi)容。
(4)瘦客戶端應用階段
在這個階段,在服務器端出現(xiàn)了獨立于Web服務器的應用服務器。同時出現(xiàn)了Web MVC開發(fā)模式,各種Web MVC開發(fā)框架逐漸流行,并且占據(jù)了統(tǒng)治地位。基于這些框架開發(fā)的Web應用,通常都是瘦客戶端應用,因為它們是在服務器端生成全部的動態(tài)內(nèi)容。
(5)RIA應用階段
在這個階段,出現(xiàn)了多種富互聯(lián)網(wǎng)應用(Rich Internet Application,RIA)技術,大幅改善了Web應用的用戶體驗。應用最為廣泛的RIA技術是DHTML和Ajax。Ajax技術支持在不刷新頁面的情況下動態(tài)更新頁面中的局部內(nèi)容。同時誕生了大量的Web前端DHTML開發(fā)庫,例如Prototype、Dojo、ExtJS、jQuery/jQuery UI等等,很多開發(fā)庫都支持單頁面應用(Single Page Application)的開發(fā)。其他的RIA技術還有Adobe公司的Flex、微軟公司的Silverlight、Sun公司的JavaFX(現(xiàn)在為Oracle公司所有)等等。
(6)移動Web應用階段
在這個階段,出現(xiàn)了大量面向移動設備的Web應用開發(fā)技術。除了Android、iOS、Windows Phone等操作系統(tǒng)平臺原生的開發(fā)技術之外,基于HTML5的開發(fā)技術也變得非常流行。
從上述Web開發(fā)技術的發(fā)展過程看,Web從最初其設計者所構思的主要支持靜態(tài)文檔的階段,逐漸變得越來越動態(tài)化。Web應用的交互模式,變得越來越復雜:從靜態(tài)文檔發(fā)展到以內(nèi)容為主的門戶網(wǎng)站、電子商務網(wǎng)站、搜索引擎、社交網(wǎng)站,再到以娛樂為主的大型多人在線游戲、手機游戲。
WebGIS發(fā)展
由于Internet 技術和Web技術的成熟與大規(guī)模普及應用,GIS開始面向傳統(tǒng)行業(yè)和廣大民眾,WebGIS開始出現(xiàn)和發(fā)展,并逐漸成為GIS應用的一種重要方式。WebGIS是將Web技術應用于GIS開發(fā)的產(chǎn)物,是一個交互式的、分布式的、動態(tài)的地理信息系統(tǒng),是由多臺主機、多個數(shù)據(jù)庫和無數(shù)終端,并由客戶機與服務器(HTTP 服務器及應用服務器)相連接所組成的。WebGIS中,空間信息應用主要采取的是瀏覽器/服務器(B/S)方式。圖8-1展示了GIS的網(wǎng)絡化的發(fā)展趨勢。
GIS的網(wǎng)絡化的發(fā)展趨勢
Web服務技術也一直處于發(fā)展之中。在Web服務發(fā)展的初期,XML格式化消息的第一個主要用途是應用于XML-RPC協(xié)議,其中RPC(Remote Procedure Call)代表遠程過程調(diào)用。在XML遠程過程調(diào)用(XML-RPC)中,客戶端發(fā)送一條特定消息,該消息中必須包括名稱、運行服務的程序以及輸入?yún)?shù)。
之后為了標準化,跨平臺又產(chǎn)生了基于SOAP的消息通信模型。SOAP是在XML-RPC基礎上,使用標準的XML描述RPC的請求信息(URI/類/方法/參數(shù)/返回值)。XML-RPC只能使用有限的數(shù)據(jù)類型種類和一些簡單的數(shù)據(jù)結構,SOAP能支持更多的類型和數(shù)據(jù)結構。優(yōu)點是跨語言,非常適合異步通信和針對松耦合的C/S。
但隨著時間的推移和SOAP的推廣情況,SOAP的一些缺陷也不斷暴露。雖然SOAP使得進程間通信變得簡單易用,但并不是每個廠商都愿意將自己的老系統(tǒng)再升級為支持SOAP,而且SOAP的解析也并不是每種語言都內(nèi)置支持,比如Javascript。為解決這些問題,HTTP協(xié)議重回開發(fā)者的視野。HTTP是世界上已經(jīng)存在的一個最為開放、最為通用的應用協(xié)議,通過設計一種使用HTTP協(xié)議來完成服務端與客戶端通信的方法,可以完美解決SOAP的問題。至此,表達性狀態(tài)轉移(Representational State Transfer,REST)應運而生。REST一般用來和SOAP做比較,它采用簡單的URL方式來代替一個對象,優(yōu)點是輕量,可讀性較好,不需要其他類庫支持,缺點是URL可能會很長,不容易解析。
WebGIS 2.0
早期的WebGIS是依據(jù)當時的網(wǎng)絡環(huán)境提出的,近年來由于Web 2.0(主要包括Web服務、REST與AJAX等技術)的迅速發(fā)展,原本W(wǎng)eb GIS中所依賴的方法與技術也不斷在更新,表8-1顯示了WebGIS 1.0與WebGIS2.0之間的一些重要區(qū)別。
WebGIS1.0與WebGIS2.0之間的重要區(qū)別
WebGIS 1.0(2005年以前的Web GIS技術)主要關注的是靜態(tài)二維地圖,WebGIS 2.0主要關注二維動態(tài)地圖和對三維地圖的研究(例如Google地球、Microsoft Bing地圖和 ESRI ArcGIS Explorer)。這些WebGIS 2.0新增的技術提升了用戶體驗,而且將使用地理網(wǎng)絡技術的用戶拓展了一個數(shù)量級。WebGIS獲取地理信息的方式同時也發(fā)生了轉變,從使用FTP(文件傳輸協(xié)議)來傳輸?shù)乩硇畔⒎绞剑D變?yōu)橹苯邮褂肵ML格式數(shù)據(jù)流的Web服務和一組API(SOAP/XML)。另一個重要變換是使用融入式技術。
融入式技術指整合網(wǎng)絡上多個資料來源或功能,以創(chuàng)造新服務的網(wǎng)絡應用程序。該詞源自于流行音樂將兩種不同風格的音樂混合,以產(chǎn)生新的趣味的作法。雖然在古老的HTML 2.0版本中早有這個概念(將圖片提供視為一種服務,一個網(wǎng)頁中的文字與圖片可以來自不同的網(wǎng)站,一個圖文并茂的網(wǎng)頁就是一種原始的混搭),一般還是將融入式技術視為Web 2.0的特性之一。Web技術的這種發(fā)展,為GIS的實施提供了一種新的模式。一個用戶可以從一個服務器獲得一層信息,再從另一個服務中獲取其他數(shù)據(jù)或專業(yè)模型,將它們?nèi)诤显谝黄穑M而產(chǎn)生基于 Web的新的GIS應用模式。這種新的模式,將極大地拓展GIS的應用范疇和服務領域。
在地理信息融入式方面有著許多應用。特別是因為Google等公司推出屬于自己的API,降低開發(fā)電子地圖的門檻,讓許多以Google地圖等電子地圖為顯示底圖的應用網(wǎng)站如雨后春筍般誕生。Programmableweb網(wǎng)站上列出了超過1400個地理信息融入式應用(http://www.programmableweb.com/tag/mapping)。最為成功的是24歲的AdrianHolovaty,他把芝加哥警察局的犯罪統(tǒng)計信息覆蓋在Google地圖上(www.chicagocrime.org)。這樣,人們在地圖上就可以精確查明30天的時段內(nèi),發(fā)生性侵犯犯罪的地點。在地圖上,每一個犯罪地點都用一個圖釘符號標出,芝加哥人能迅速獲知應該避開哪些危險的火車站、街區(qū)。社區(qū)活動家 JamesCappleman對Holovaty的網(wǎng)絡地圖印象深刻,因為這樣居民們就不會再輕信那些街區(qū)安全的說法了。而包括舊金山在內(nèi)的其他一些城市希望Holovaty也能為它們開發(fā)犯罪定位網(wǎng)站。同樣,佛羅里達性犯罪網(wǎng)(MapSexOffender.com)把Google地圖和被宣判的性犯罪者的資料結合起來。訪問者可以調(diào)閱所在社區(qū)地圖,點擊圖標查看每一個犯罪者的姓名、最新地址和照片。而美國的駕車者如果要找最便宜的加油站,只需點擊結合了Google地圖和汽油伙伴網(wǎng)站(Gas-buddy.com)加油站價格的數(shù)據(jù)庫的鏈接就可以了。同樣的,購房者可以利用Google的地圖,精確查明適合的房源地點。以搜索房源的Housingmaps.com網(wǎng)站為例,Google地圖剛發(fā)布,電腦動畫工程師PaulRademacher隨即開發(fā)了 Hous-ingmaps.com。他將Google地圖和全美所有在Craigslist上公布的公寓名單對接。此外還有提供飛機航班即時信息的fboweb.com,結合天氣信息的Weather Underground等等。
基于REST風格Web服務的WebGIS系統(tǒng)架構
基于REST風格Web服務的Web GIS系統(tǒng)架構(如圖8-2)是在數(shù)字城市建設中普遍使用的系統(tǒng)架構,在該架構中GIS服務與其他中間層的功能(例如用戶管理、日志等)都部署在同一個應用中。只有這樣的架構才能很好地解決數(shù)據(jù)共享與互操作,并節(jié)省開發(fā)成本與縮短開發(fā)周期。
GIS服務與其他功能合并部署的系統(tǒng)架構
但是為了更大程度地方便地理信息數(shù)據(jù)及GIS功能的共享,以及方便二次開發(fā),通常將GIS服務單獨部署,這時的系統(tǒng)架構如圖
GIS服務單獨部署的系統(tǒng)架構
在上述系統(tǒng)架構中,可以利用現(xiàn)有的GIS服務,例如Google、Microsoft、百度、高德的地圖服務,也可以利用ArcGIS Server等地理信息服務軟件,將地理信息發(fā)布為服務,在系統(tǒng)客戶端利用Javascript調(diào)用這些服務,從而在系統(tǒng)中集成地圖及GIS功能。
圖文摘錄于《走向大數(shù)據(jù)——從數(shù)字北京到智慧北京》一書
如需本書,請在微信平臺留言聯(lián)系我們