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