摘 要: 地理標志語言GML和可縮放矢量圖形SVG是兩種基于XML的開放性、應(yīng)用性標記語言;而網(wǎng)絡(luò)要素服務(wù)WFS是空間數(shù)據(jù)互操作的一個重要組成部分,能夠為不同的GIS數(shù)據(jù)格式提供要素級的交互。介紹了這三大技術(shù)的特點,針對WebGIS技術(shù)的發(fā)展受到數(shù)據(jù)格式、矢量圖形顯示等因素的限制,提出了采用GML、SVG和WFS的方式動態(tài)實現(xiàn)異構(gòu)數(shù)據(jù)的交互性和提高客戶端顯示地圖圖形的質(zhì)量。
關(guān)鍵詞: GML; SVG; WFS; WEBGIS
近年來,W3C組織前后推出了GML和SVG兩種基于XML的開放性、應(yīng)用性標記語言。SVG與GML的結(jié)合解決了大數(shù)據(jù)文件讀取緩存的問題,實現(xiàn)從GML到SVG的可視化轉(zhuǎn)換,為網(wǎng)絡(luò)化空間信息系統(tǒng)的空間圖形數(shù)據(jù)存儲、傳輸和顯示提出了解決方法。WFS是空間數(shù)據(jù)互操作的一個重要組成部分,能為不同GIS數(shù)據(jù)格式提供要素級的交互?;贕ML的WFS能夠為Web環(huán)境下的空間數(shù)據(jù)互操作技術(shù)和空間信息處理互操作技術(shù)提供簡單而又有效的基本數(shù)據(jù)訪問、要素編輯、要素的組合查詢。通過研究開放式GIS聯(lián)盟OGC(Open GIS Consortium Inc.)的標準規(guī)范,使用XML傳輸和存儲地理信息,提出了基于GML、SVG、WFS的體系結(jié)構(gòu)。
WebGIS是應(yīng)用于網(wǎng)絡(luò)平臺上的地理信息系統(tǒng),目前WebGIS的發(fā)展受到數(shù)據(jù)格式、網(wǎng)絡(luò)帶寬、矢量圖形顯示等因素的影響。本文提出一種基于地理標志語言GML(Geography Markup Language)實現(xiàn)互操作WebGIS的新機制,該機制以GML實現(xiàn)多源數(shù)據(jù)存儲與傳輸為基礎(chǔ),利用網(wǎng)絡(luò)要素服務(wù)WFS(Web Feature Services)實現(xiàn)地理數(shù)據(jù)要素層存取、檢索與更新,在客戶端以可縮放矢量圖形SVG(Scalable Vector Graphics)方式輸出高質(zhì)量矢量圖形。與傳統(tǒng)的WMS實現(xiàn)Web服務(wù)相比,該機制能實時動態(tài)地實現(xiàn)異構(gòu)、跨平臺地理數(shù)據(jù)要素層互操作。
1 SVG的特點
可縮放矢量圖形(SVG)是一種基于XML的、開放標準的、可擴展的語言,用來描述2D的矢量圖形和矢量/柵格混和,能夠滿足Web開發(fā)者對動態(tài)、可縮放與平臺無關(guān)的Web內(nèi)容表現(xiàn)和交互手段日益增長的需求[1]。W3C中的SVG工作組由20多個成員組成,其中包括Sun、IBM、Adobe、HP、Microsoft、AOL/Netscape等業(yè)界知名的大公司。
與HTML、XML一樣,SVG也是由元素和屬性等標記標注的文本組成的,可以很容易地被一次查詢、修改。SVG基于純文本的特性,使它具備了像文字信息一樣的可檢索性,從而實現(xiàn)了人們對于Web的圖形檢索;SVG的易用性主要在于它的描述圖形形狀、圖像和文本的詞匯表。SVG可以支持16位色,使地圖顏色豐富多彩;用戶可以任意倍數(shù)地放大地圖圖像,而不用擔心地圖細節(jié),并且易于下載;SVG是在瀏覽器中顯示GIS信息的理想載體,所有典型的GIS元素都可以被顯示和操作,且所有數(shù)據(jù)都是以壓縮的矢量圖形進行傳輸,易于實現(xiàn)與用戶交互,編寫鼠標事件就可以實現(xiàn)高亮度顯示、地圖提示、特殊效果等。另外,SVG添加?xùn)鸥駡D形非常方便,因此易于發(fā)布遙感圖像。其實SVG是XML的一種特殊形式,很多用于處理XML的工具都可以用來處理SVG圖形,所以讀取、編輯、發(fā)布SVG非常方便。因此SVG潛在的應(yīng)用前景十分廣闊。
但是SVG主要是用來瀏覽矢量數(shù)據(jù),對于一些高級GIS信息,SVG有其應(yīng)用的局限性,如SVG不支持拓撲結(jié)構(gòu)、地理坐標系統(tǒng)和3D數(shù)據(jù)。而且,地理對象屬性數(shù)據(jù)并不直接存儲,而是分解為color、linestyle等符號。因此,OpenGIS組織提出了一種基于XML標準的、專門為地理空間數(shù)據(jù)設(shè)計的規(guī)范GML。
2 GML的特點
地理標記語言GML(Geography Markup Language)是由Open GIS聯(lián)盟制定的基于XML的對地理信息(包括地理特征的幾何和屬性)傳輸和存儲的編碼規(guī)范。GML是一個簡單的基于文本的地理特征編碼標準,具有簡單、直觀、容易理解、編輯、檢查和轉(zhuǎn)換等特點。與XML一樣,GML在地理信息世界中將內(nèi)容及其表現(xiàn)形式分離開,主要關(guān)注地理數(shù)據(jù)內(nèi)容的表現(xiàn)。GML是基于OGC創(chuàng)建的公共地理模型(OGC抽象規(guī)范)基礎(chǔ)上的,即空間實體特征及屬性封裝,用地理特征描述世界[2]。地理特征包括一系列的屬性和相應(yīng)的幾何信息,屬性是由名稱、類型和屬性值組成,幾何信息由基本的幾何建模體(如點、線、面、曲線、多邊形等)組成。GML可以對很復(fù)雜的地理實體進行編碼。空間參考系統(tǒng)是地理信息系統(tǒng)數(shù)據(jù)處理的基礎(chǔ)。GML可以封裝空間地理參考系統(tǒng)及主要的投影關(guān)系等,對空間參考系統(tǒng)進行編碼,這點確保了分布式處理的擴展性和靈活性。GML對地理數(shù)據(jù)的分發(fā)非常方便,可以實現(xiàn)地理數(shù)據(jù)的分布式存儲;另外,GML可以用公共工具瀏覽和編輯,還可以實現(xiàn)與非空間數(shù)據(jù)集成。由于以上優(yōu)點,GML已經(jīng)被大多數(shù)的GIS開發(fā)商所接受并得到進一步的開發(fā)。GML數(shù)據(jù)在網(wǎng)絡(luò)瀏覽器上的顯示如圖1所示。
3 WFS的特點
OGC制定的互聯(lián)網(wǎng)相關(guān)規(guī)范,是一套運用XML通過通信協(xié)議與服務(wù)器溝通的規(guī)范,其中包括網(wǎng)絡(luò)要素服務(wù)WFS(Web Feature Services),WFS是架構(gòu)一個基于Web的開放式地理信息系統(tǒng)的重要規(guī)范之一。WFS是作為一種數(shù)據(jù)訪問機制提出的,用于異構(gòu)數(shù)據(jù)基于GML要素層的獲取,并且實現(xiàn)數(shù)據(jù)的互操作性。WFS可使數(shù)據(jù)客戶在分布式環(huán)境下通過Web Service來獲取不同數(shù)據(jù)源的數(shù)據(jù),即讓地理數(shù)據(jù)以GML格式傳輸給用戶。
WFS返回的是要素級的GML編碼,并提供對要素的增加、修改、刪除等事務(wù)操作[3]。WFS允許客戶端從多個WFS中取得使用GML編碼的地理空間數(shù)據(jù),它定義了5個操作:GetCapabilites返回Web要素服務(wù)性能描述文檔(用XML描述)、DescribeFeatureType返回描述可以提供服務(wù)的任何要素結(jié)構(gòu)的XML文檔、GetFeature為一個獲取要素實例的請求提供服務(wù)、Transaction為事務(wù)請求提供服務(wù)、LockFeature處理在一個事務(wù)期間對一個或多個要素類型實例上鎖的請求。
WFS允許一個客戶端以GML編碼格式從多重的網(wǎng)絡(luò)要素服務(wù)中獲取空間要素。WFS以XML編碼,再用GML表示地理要素,GML描述的地理要素的數(shù)據(jù)源數(shù)據(jù)庫可以對客戶端應(yīng)用不透明。這種方式要求任何空間數(shù)據(jù)的訪問必須通過WFS的接口。
WFS提供四種對GML要素的數(shù)據(jù)操作接口:創(chuàng)建實例、查詢獲取實例、刪除實例、更新實例。服務(wù)器端首先提供其能夠?qū)崿F(xiàn)的服務(wù)描述,客戶端的應(yīng)用程序以XML方式發(fā)出請求,該請求包括查詢和變換數(shù)據(jù)操作,可以用于一個或多個要素,在一個或多個數(shù)據(jù)庫上進行(通過GML的XLink實現(xiàn))。WFS服務(wù)器讀取和傳遞這些客戶端的請求,以GML格式返回結(jié)果。圖2表示客戶端應(yīng)用與WFS服務(wù)接口的交互過程。
4 WebGIS體系結(jié)構(gòu)
目前,WebGIS最常用的體系結(jié)構(gòu)是B/S和C/S的混合模式結(jié)構(gòu),即:服務(wù)器并不處理用戶的所有請求而是處理一部分請求,通過服務(wù)器向客戶端發(fā)送一段運行在本地機上的客戶程序,這個程序可以與用戶交互,處理用戶的一些簡單請求。當客戶發(fā)送一些復(fù)雜、高級的操作要求而客戶端不能處理時,請求服務(wù)器端處理,這樣才能達到負載的平衡。為了更好地解決地理空間數(shù)據(jù)的共享和網(wǎng)絡(luò)帶寬的問題,GML、WFS和SVG的組合使用標準的數(shù)據(jù)模型描述地理要素的一致性和語法,可以使來自不同數(shù)據(jù)源的數(shù)據(jù)不經(jīng)過異構(gòu)轉(zhuǎn)換即可實現(xiàn)共享。
4.1 主要技術(shù)特點
在WebGIS中先將空間數(shù)據(jù)轉(zhuǎn)換成GML格式存儲,再通過XSLT將GML轉(zhuǎn)換為SVG。目前IE和Nescape等主要瀏覽器還不支持SVG的顯示,所以要先在瀏覽器上安裝SVG圖像插件(如Adobe的SVGViewer),從而實現(xiàn)失量圖形的顯示。
空間數(shù)據(jù)到GML的轉(zhuǎn)換非常容易實現(xiàn),因為各GIS軟件都有自己的數(shù)據(jù)交換格式或部分公開數(shù)據(jù)格式,只要這些空間數(shù)據(jù)文件以文本形式打開,按照一定的格式將元素讀取出來轉(zhuǎn)換成對應(yīng)的格式即可。
GML到SVG的轉(zhuǎn)換則是利用XSLT,因為SVG和GML都是基于XML的,并且XSLT(Extensible Stylesheet Language Transformations)是把一種XML格式的數(shù)據(jù)轉(zhuǎn)化為另外一種XML格式的數(shù)據(jù)語言。首先源XML數(shù)據(jù)的元素被分析、過濾、記錄,而新的元素根據(jù)轉(zhuǎn)化要求被創(chuàng)建,形成一個新的XML文件,如圖3。從GML到SVG的轉(zhuǎn)換需要進行坐標轉(zhuǎn)換和文檔映射兩部分[4]。SVG提供了平移、旋轉(zhuǎn)、伸縮、歪斜、矩陣變換等幾種坐標轉(zhuǎn)換方法,因此用GML表示的空間地理數(shù)據(jù)可以方便轉(zhuǎn)化為SVG格式。
采用XSLT技術(shù)將GML文件轉(zhuǎn)換為SVG文件的優(yōu)點是修改圖形時不需要修改SVG源文件,只需要修改GML文件,并且可以結(jié)合JSP技術(shù)動態(tài)生成SVG文件[5]。在系統(tǒng)中,這部分任務(wù)主要由Web應(yīng)用服務(wù)器執(zhí)行。具體實現(xiàn)方法:采用Xalan-Java2 XSLT處理器,它完全支持W3C的XSLT1.0版本建議標準和Xpath1.0標準,將GML文件根據(jù)XSLT樣式表文件轉(zhuǎn)換為SVG格式的文檔。
4.2 框架體系設(shè)計
它采用GML進行數(shù)據(jù)編碼與定義地理元素的聯(lián)系,GML在元素層定義元數(shù)據(jù),生成GML文件,允許在元素層方便地查詢。此外,在GML中使用XLink來聯(lián)接不同數(shù)據(jù)源的數(shù)據(jù),這樣數(shù)據(jù)在一個數(shù)據(jù)源更新時,可以實時地在關(guān)聯(lián)的數(shù)據(jù)表示和應(yīng)用中查看和獲取。對于遠程數(shù)據(jù)的訪問和交換,OGC的WFS用于通過網(wǎng)絡(luò)訪問和處理要素層的數(shù)據(jù)。圖4為此框架體系結(jié)構(gòu)的總體設(shè)計。
服務(wù)器端GML描述遵循標準的空間數(shù)據(jù)模型,異構(gòu)數(shù)據(jù)用GML3.x表示。在一個網(wǎng)絡(luò)服務(wù)器上部署實現(xiàn)WFS,WFS是基于HTTP協(xié)議的GET/POS方法實現(xiàn)GetCapabilities、escribeFeatureType、GetFeature/GetFeatureWithLock、LockFeature以及事務(wù)操作等請求與響應(yīng)的功能,能夠生成WFS規(guī)范化的XML文檔供客戶端程序調(diào)用;客戶端安裝SVG顯示插件,并在網(wǎng)絡(luò)服務(wù)器上開發(fā)GML解析模塊,對WFS接口生成的XML文檔中的GML進行分析,設(shè)計XSL、CSS文件,完成由GML生成SVG文檔功能。
該體系結(jié)構(gòu)的特點:GML、SVG是完全基于XML的,具有平臺無關(guān)性,并且是純文本的,編碼的可讀性強;異構(gòu)數(shù)據(jù)可以以其原始格式存儲,通過使用WFS轉(zhuǎn)換成GML快速獲取,可以解決WebGIS中比較突出的異構(gòu)數(shù)據(jù)共享問題;瀏覽器端的地圖發(fā)布采用SVG矢量圖形,在進行網(wǎng)絡(luò)傳輸時數(shù)據(jù)量比傳輸柵格圖片的數(shù)據(jù)量小,從而可以減輕網(wǎng)絡(luò)傳輸負擔,加快傳輸速度,使系統(tǒng)的執(zhí)行效率達到最優(yōu)化,且性能比較穩(wěn)定。
GML、SVG和WFS是標準的技術(shù),每一個都有獨特的作用,組合使用給WebGIS的發(fā)展提供了更大的潛力。GML作為標準空間數(shù)據(jù)格式正應(yīng)用于越來越多的領(lǐng)域;SVG作為一種基于XML的圖形描述語言,可以在Web上形成高質(zhì)量的圖形也會得到廣泛應(yīng)用;WFS可以更好地實現(xiàn)異構(gòu)數(shù)據(jù)的互操作。而GML+SVG+WFS框架可以克服傳統(tǒng)WebGIS的很多缺點,很好地解決了空間數(shù)據(jù)共享、網(wǎng)絡(luò)帶寬、提高顯示地圖的圖形質(zhì)量等問題。但是在地圖信息量較大時,會造成客戶端SVG顯示速度下降,并且XML文件的傳輸會占用較大的帶寬,因此XML傳輸將成為亟待解決的問題。
參考文獻
[1] 彭海龍,鄒彬,邵巖,等.SVG在海區(qū)信息WebGIS中的應(yīng)用研究[J].海洋預(yù)報,2005,22(l):5-10.
[2] 龍明,王曉明,馮猛,等.基于XML的WebGIS體系結(jié)構(gòu).測繪學(xué)院學(xué)報,2004,21(2):121-123.
[3] Web feature service implementation specification. Open. GIS Consortium Inc. [EB/OL]. http://www.openg-is.org/(19-September-2002).
[4] 劉旭軍,關(guān)佶紅.WebGIS應(yīng)用中的GML文檔到SVG的轉(zhuǎn)換[J].計算機應(yīng)用,2004,24(2):157-160.
[5] 簡友光,李巖.基于SVG+GML的空間信息發(fā)布的方法研究[J].計算機與數(shù)字工程,2006,34(1):72-76.