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