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