唐平英,胡 玲
(長沙理工大學(xué)交通運輸工程學(xué)院,長沙 410076)
隨著計算機技術(shù)和地球空間科學(xué)技術(shù)的不斷發(fā)展和進步,面向大眾服務(wù)的GIS應(yīng)用系統(tǒng)不斷涌現(xiàn),Internet也已成為GIS新的系統(tǒng)發(fā)布平臺,網(wǎng)絡(luò)化成為GIS發(fā)展的必然趨勢。WebGIS作為網(wǎng)絡(luò)GIS的一種,它的出現(xiàn)有效推動了GIS的這一發(fā)展趨勢,使GIS真正成為大眾化的使用工具,它是GIS技術(shù)與組件技術(shù)、互操作技術(shù)、分布式技術(shù)的集成[1]。經(jīng)過近幾十年的研究和發(fā)展,各大GIS廠商爭相推出了一系列相對成熟的WebGIS產(chǎn)品,如ERSI公司的ArcIMS、MapInfo公司的 MapXtreme、北京超圖的 Surper-Maper IS、武漢吉奧公司的GeoSurf等。
然而,這些WebGIS產(chǎn)品結(jié)構(gòu)復(fù)雜,體系龐大,開發(fā)周期長,耗資巨大,調(diào)試和維護困難,不利于中小型企業(yè)和普通開發(fā)人員的開發(fā);而且傳統(tǒng)WebGIS對多源異構(gòu)空間數(shù)據(jù)共享和互操作難以實現(xiàn)的固有缺陷沒有得到很好解決。針對上述問題,研究提出了基于Web Service的開放式WebGIS系統(tǒng),它是一種輕量級、開放式的系統(tǒng)。在此系統(tǒng)基礎(chǔ)上,利用Geoserver平臺,構(gòu)建了土地利用規(guī)劃信息系統(tǒng),可以方便查詢和修改土地利用規(guī)劃情況,以便做出更合理的規(guī)劃。
XML(Extensible Markup Language——可擴展標記語言)及Web Service技術(shù)的出現(xiàn),使我們第一次真正談?wù)撻_放的WebGIS。XML是1996年由互聯(lián)網(wǎng)聯(lián)合組織(W3C)公布的一組規(guī)范[2],它提供了一種獨立的運行程序的方法來共享數(shù)據(jù),能使計算機通信把Internet的功能由信息傳遞擴大到人類其他多種多樣的活動中去,具有良好的可靠性和交互操作性。
Web Service,簡單來講就是在網(wǎng)絡(luò)上創(chuàng)建一個應(yīng)用程序,對外提供一系列可以調(diào)用的接口API,接收和處理來自網(wǎng)絡(luò)上的應(yīng)用請求。它是Internet分布式計算環(huán)境的基本程序模塊,基于標準規(guī)范,松散耦合度高,集成能力較強,為WebGIS提供了跨平臺、開放的、動態(tài)鏈接的空間信息服務(wù)網(wǎng)絡(luò)體系平臺,提供了對多源異構(gòu)空間數(shù)據(jù)進行共享和互操作的接口。它的體系結(jié)構(gòu)描述了三個角色(服務(wù)提供者、服務(wù)請求者、服務(wù)代理者)以及三個操作(發(fā)布、查找、綁定),如圖1所示。
圖1 Web Service的體系結(jié)構(gòu)Fig.1 The system structure of Web Service
隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,Web Service技術(shù)也取得了明顯進展。OGC制定和發(fā)布了一系列基于Web Service空間信息服務(wù)的框架、規(guī)范和標準,包括Web Map Service (WMS)、Web Feature Service(WFS)、Web Coverage Service (WCS)、Web Processing Service(WPS)[3]等。當(dāng)前主流WebGIS系統(tǒng)已支持其中的部分或全部規(guī)范,如Terra Server影像數(shù)據(jù)服務(wù)、微軟的MapPoint.Net、ESRI的Arc Web Service等。各大網(wǎng)絡(luò)地圖門戶網(wǎng)站也紛紛推出自己的地理信息服務(wù)模塊,并開放了應(yīng)用程序開發(fā)接口API,以供用戶開發(fā)使用[4],如Google Maps,Geoserver等。
筆者提出的基于Web Service的開放式WebGIS系統(tǒng)框架如圖2所示。
圖2 基于Web Service的開放式WebGIS系統(tǒng)框架Fig.2 The open WebGIS system framework based on Web Service
在該系統(tǒng)框架中,客戶端采用Ajax技術(shù)在后臺進行客戶端與服務(wù)器端之間的異步數(shù)據(jù)通訊,從而用戶請求無須打斷界面操作,有如同使用桌面應(yīng)用程序的體驗;同時在客戶端使用基于Ajax的內(nèi)存緩存機制,將靜態(tài)空間數(shù)據(jù)和頻繁調(diào)用的數(shù)據(jù)存儲起來,當(dāng)需要再次請求這些數(shù)據(jù)時,便可直接在內(nèi)存中調(diào)用,減少了客戶端對服務(wù)器端的請求,可有效緩解Web服務(wù)帶寬的壓力,減輕服務(wù)器負擔(dān)。在Web服務(wù)器端,向用戶提供了一系列接口API,包括應(yīng)用接口、數(shù)據(jù)接口和功能接口等,以方便調(diào)用各種Web服務(wù);在客戶端進行基本的地圖操作、圖形顯示、數(shù)據(jù)查詢、簡單的空間分析時,將復(fù)雜的空間分析功能請求基于OGC規(guī)范的、能提供此服務(wù)的在線服務(wù)器,智能協(xié)調(diào)瀏覽器/服務(wù)器之間的功能;在服務(wù)器端部署有各種基于OGC規(guī)范的Web服務(wù),不僅可以為系統(tǒng)內(nèi)部調(diào)用,也可以為其他使用者提供各種Web服務(wù)。同時客戶端也可以請求任何在線的基于OGC地理信息Web服務(wù)規(guī)范的GIS服務(wù)器,需要GIS數(shù)據(jù)或功能服務(wù)的單位或個人,可以隨時隨地進行訪問,服務(wù)器之間也可以交互,故不用考慮服務(wù)器是基于哪個平臺和在哪里,也不用知道網(wǎng)上的服務(wù)者是誰,保持了客戶端代碼的輕量級和功能的多樣性[5],大大提高了系統(tǒng)的開放性和對異構(gòu)空間數(shù)據(jù)的共享和互操作性。
Geoserver是OpenGIS Web服務(wù)器規(guī)范的J2EE(Java平臺企業(yè)版Java2 Platform,Enterprise Edition)實現(xiàn)[6],是遵循OGC開放標準的開源WFS-T和WMS服務(wù)器[7],也是應(yīng)用最廣泛的開源WebGIS之一。利用Geoserver不僅可以方便地發(fā)布地圖數(shù)據(jù),允許用戶對特征數(shù)據(jù)進行更新、刪除、插入操作,而且還可以在用戶之間迅速共享空間地理信息。目前,最新版的Geoserver2.2.2已經(jīng)支持OGC規(guī)范的WMS、WFS和WCS特性,同時支持PostGIS、Shapefile、MapInfo等多種數(shù)據(jù)格式,能支持上百種投影,而且可以將網(wǎng)絡(luò)地圖輸出為JPEG、GIF等多種圖形圖像格式,除此之外還增加了一款基于Java的開源GIS工具集——GeoTools,提供各種接口API和helper類,允許用戶對地理數(shù)據(jù)進行基本操作,大大擴展了Geoserver的功能。Geoserver的體系技術(shù)結(jié)構(gòu)如圖3所示.
圖3 Geoserver的體系技術(shù)結(jié)構(gòu)Fig.3 Geoserver technology structure
筆者所構(gòu)建的土地利用規(guī)劃信息系統(tǒng)中的空間屬性數(shù)據(jù)和專題數(shù)據(jù),存儲在Geoserver中發(fā)布成WFS服務(wù),以方便數(shù)據(jù)的共享和互操作。
根據(jù)研究提出的基于Web Service的開放式WebGIS系統(tǒng)框架,開發(fā)實現(xiàn)了懷化市土地利用規(guī)劃信息系統(tǒng)。該土地利用規(guī)劃信息系統(tǒng)通過網(wǎng)絡(luò)Web方式,面向多種用戶,通過地圖操作,可以方便地進行土地利用規(guī)劃信息的查詢、修改、分析等操作,為相關(guān)部門的研究、決策提供可靠依據(jù)和實用途徑。
要構(gòu)建基于開放式WebGIS的土地利用規(guī)劃信息系統(tǒng),首先要準備土地利用規(guī)劃的空間屬性數(shù)據(jù)和專題數(shù)據(jù),由于土地利用規(guī)劃的所有數(shù)據(jù)圖層都是通過《懷化市土地利用總體規(guī)劃(2006—2020年)》在MAPGIS平臺和建庫軟件中獲得,而本系統(tǒng)在開發(fā)時設(shè)定的數(shù)據(jù)格式是基于OGC標準的規(guī)范格式,所以數(shù)據(jù)需要轉(zhuǎn)換成標準格式才能調(diào)用。鑒于上述Geoserver的開源性和強大功能,在本系統(tǒng)中,將所有空間數(shù)據(jù)圖層轉(zhuǎn)化成ESRI Shapefile格式,存儲在Geoserver中發(fā)布成WFS服務(wù),以方便對數(shù)據(jù)的共享和調(diào)用。圖4所示為在Geoserver中添加的.shp格式的圖層,圖5所示為成功添加圖層后點擊Layer Preview查看發(fā)布的圖層。
圖4 在Geoserver中添加的.shp格式的圖層Fig.4 The.shp format layer added to Geoserver
準備好規(guī)劃數(shù)據(jù)后,再準備空間分析服務(wù)器,本系統(tǒng)中以52north WPS[8]提供空間分析服務(wù),它提供的GetCapabilities如下圖6所示。當(dāng)然,也可以請求在線支持WPS規(guī)范的GIS服務(wù)器;最后再制定客戶端,本系統(tǒng)制定的客戶端,只有簡單的界面定制、地圖圖層及專題定制以及必要和少量的JavaScript腳本程序開發(fā)。至此,就完成了土地利用規(guī)劃信息系統(tǒng)的構(gòu)建。該系統(tǒng)界面簡單,其操作猶如桌面程序,非專業(yè)人員也可以使用,具有廣泛的實用性。
圖5 在Geoserver中查看發(fā)布的LXDW圖層Fig.5 Preview of the LXDW layer published in Geoserver
圖652north WPS提供的空間分析服務(wù)Fig.6 The spatial analysis service provided by 52 north WPS
基于開放式WebGIS的土地利用規(guī)劃信息系統(tǒng)與其他商用或開源WebGIS系統(tǒng)相比,具有開放性強、輕便、簡單易于開發(fā)等特點。主要體現(xiàn)為:系統(tǒng)不僅可以加載自身數(shù)據(jù),還可以加載其他外部數(shù)據(jù);不僅可以調(diào)用自身空間分析服務(wù),還可以調(diào)用外部空間分析服務(wù)。另一方面,系統(tǒng)的數(shù)據(jù)可以以WFS方式與其他系統(tǒng)共享,同時系統(tǒng)的空間分析服務(wù)也可被其他支持WPS規(guī)范的GIS客戶端所調(diào)用,達到了數(shù)據(jù)與功能的分布式布局及共享與互操作。而且從系統(tǒng)的構(gòu)建過程可以看出,系統(tǒng)小巧,開發(fā)工作簡單,實現(xiàn)了數(shù)據(jù)、界面與空間分析算法的完全分離。
研究提出的基于Web Service的開放式WebGIS系統(tǒng),具有較強的開放性,較好的對多源異構(gòu)空間數(shù)據(jù)的共享和互操作性?;诖讼到y(tǒng)構(gòu)建的懷化市土地利用規(guī)劃信息系統(tǒng),可以方便地查詢實時的土地利用規(guī)劃情況,并進行修改和分析等操作,方便土地利用規(guī)劃相關(guān)部門的研究決策和科學(xué)、信息化管理,具有廣泛的適用性。
[1]李心穎,李峰.基于XML Web Service的網(wǎng)絡(luò)地理信息系統(tǒng)的構(gòu)建[J].測繪與空間地理信息,2012,35(6):19-21.
[2]周文生,毛鋒,胡鵬.開放式WebGIS的理論與實踐[M].北京:科學(xué)出版社,2007:22-23.
[3]Open Geospatial Consortium Inc(OGC).OpenGIS Web Processing Service v1.0.0[EB/OL].(2007-06-08)[2012-10-07].http://www.opengeospatial.org/.
[4]張曉煜,李向.一種基于Google Maps的土地利用信息發(fā)布平臺[J].計算機與數(shù)字工程,2012,40(10):146-149.
[5]徐卓揆.基于HTML5、Ajax和Web Service的WebGIS研究[J].測繪科學(xué),2012,37(1):145-147.
[6]梁啟靚.基于Geoserver的開源WebGIS開發(fā)與應(yīng)用[D].西安:長安大學(xué),2010.
[7]陽華.基于Geoserver的校園WebGIS[D].衡陽:南華大學(xué),2011.
[8] Bastian Schaeffer.Web Processing Service Tutorial[EB/OL].(2009-01-09)[2012-10-07].http://www.52north.org/.