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