來源:中國科技論文在線(www.paper.edu.cn) 摘要:本文從 SVG 的特點(diǎn)出發(fā),針對空間數(shù)據(jù)的復(fù)雜性、拓展性和 GIS 平臺(tái)的開放性、交互性,論述了SVG 在構(gòu)建地理信息系統(tǒng)平臺(tái)時(shí)所發(fā)揮的重要作用,最后通過與各種矢量描述語言的對比,展現(xiàn)了 SVG技術(shù)在構(gòu)建 OpenGIS 平臺(tái)過程表現(xiàn)出來的優(yōu)越性。 關(guān)鍵字:可縮放矢量圖像格式、WebGIS、XML、矢量圖像、優(yōu)越性 SVG,是可縮放矢量圖像格式(Scalable Vector Graphics)的簡稱,SVG 標(biāo)準(zhǔn)由權(quán)威的 W3C 組織制定并推薦,它基于 XML(可擴(kuò)展標(biāo)識(shí)語言),是一個(gè)全新的標(biāo)準(zhǔn)開放的矢量圖像和動(dòng)畫格式。SVG 通過使用簡單的文本語句完成矢量圖像,以及諸如色彩填充、對象運(yùn)動(dòng)、動(dòng)態(tài)交互、濾鏡效果、音效等各式媒體效果,成為未來的 Web 圖形圖像標(biāo)準(zhǔn)。
- 一、SVG:基于 XML,是一種專業(yè)的 Web 圖像標(biāo)準(zhǔn)
1.SVG 基于 XML 格式,易于 web 發(fā)布、傳輸,跨平臺(tái); SVG 兼容 XML、HTML4、XHTML 等語言并符合 CSS、XSL、DOM 等規(guī)范。這就意味著 SVG 將是可擴(kuò)展、可樣式化、可腳本化和易于集成的。SVG 可以很好的跨平臺(tái)工作,解決外部輸出、色彩、帶寬等相關(guān)問題。在 SVG 中,地理數(shù)據(jù)可被唯一地標(biāo)識(shí),便于信息查詢和搜索,便于網(wǎng)上參與數(shù)字地球的資源共享,提高 WebGIS 服務(wù)的互操作性,減少了服務(wù)器和客戶之間的頻繁交互,從而提高 GIS 用戶的互操作速度。XML 具有數(shù)據(jù)來源的多樣性和多種應(yīng)用的靈活性、柔韌性和適應(yīng)性。XML 可以對不同來源的結(jié)構(gòu)化的 GIS數(shù)據(jù)進(jìn)行合并、集成,客戶獲得 XML 數(shù)據(jù)后,可以用以開發(fā)多種形式的 WebGIS 應(yīng)用軟件,也可用于測量、制圖、空間分析和空間建模等空間數(shù)據(jù)計(jì)算和數(shù)據(jù)處理,擴(kuò)展 XML 與 GIS 數(shù)據(jù)的多方面應(yīng)用。利用 XSLT技術(shù),可以非常容易的將各種 XML 空間數(shù)據(jù)轉(zhuǎn)換為 SVG 的圖像格式,因而可以說,正因?yàn)?XML 標(biāo)準(zhǔn)的開放性,SVG 才成為了 OpenGIS 的新寵。
2.交互性強(qiáng),支持各種先進(jìn)的網(wǎng)頁交互技術(shù); SVG 支持 SMIL(synchronized multimedia integration language),使得用戶可以自由的同 SVG 中的元素完成一些交互的動(dòng)作,從而完成既定的目標(biāo),這一點(diǎn)在目前單獨(dú)依靠圖片是完成不了的,需要由網(wǎng)頁中的腳本語句來實(shí)現(xiàn)。 SVG 圖像能對用戶動(dòng)作做出不同響應(yīng),例如高亮、聲效、特效、動(dòng)畫等,SVG 圖像中的命令語句可以自由的和腳本程序,JavaScript 或 XML 進(jìn)行交互,完全通過代碼來實(shí)現(xiàn)。SVG 圖像可以方便的由程序語言來動(dòng)態(tài)的生成,例如用 JavaScript,Perl,Java 甚至是 XSLT,這對于一些數(shù)據(jù)庫制表是非常實(shí)用的,圖像可以根據(jù)數(shù)據(jù)庫中的關(guān)系量實(shí)時(shí)的改變。 除了具備當(dāng)前網(wǎng)頁所具有的一些交互手段外,SVG 還在很多方面加強(qiáng)或引入了先進(jìn)的交互方式,如它完全支持 DOM(文檔對象模型),并為各種圖元留有相應(yīng)的 DOM 接口,因而 SVG 以及 SVG 中的物件(圖元)完全可以通過腳本語言接受外部事件的驅(qū)動(dòng)來實(shí)現(xiàn)自身或?qū)ζ渌鼒D元的控制;SVG 支持 XLink 和 XPointer, 可以在 SVG 文檔及其它文檔之間制作超級(jí)鏈接。
3.SVG 既是一種靜態(tài)圖像,又是一種動(dòng)態(tài)圖像,可以很方便的實(shí)現(xiàn)動(dòng)態(tài)模擬; 圖 1、SVG 實(shí)現(xiàn)路徑的動(dòng)態(tài)模擬
SVG 的精華之處更在于它對動(dòng)畫的支持,如上圖所示,SVG 可以非常方便的實(shí)現(xiàn)對地理信息的實(shí)時(shí)動(dòng)態(tài)模擬,如路徑跟蹤、氣團(tuán)流動(dòng)、洪峰監(jiān)視與預(yù)警等諸多應(yīng)用領(lǐng)域。作為 SVG 的一個(gè)重要的應(yīng)用分支,Mobile SVG 將 SVG 與 GPS、GIS 等技術(shù)關(guān)聯(lián)起來,借助移動(dòng)通信設(shè)備,為人類活動(dòng)提供更方便,更智能化的空間定位與導(dǎo)航、目標(biāo)鎖定跟蹤等多方面的 GIS 服務(wù)。目前國外有很多大型的 IT 公司正在積極組織開發(fā) Mobile SVG,成熟的 Mobile SVG 技術(shù)已經(jīng)應(yīng)用到了我們的生活中。
4.SVG 是一種文本描述格式,可以很容易的對各種復(fù)雜的地理信息進(jìn)行查詢與升級(jí); 作為基于文本的格式,SVG 圖像中的文字可以被網(wǎng)絡(luò)搜索引擎所搜尋(這樣可以制作自由的圖像搜索引擎),或被用戶瀏覽器查找和編輯,這種基于文本的格式的另一個(gè)好處是可以進(jìn)行二次修改,因此 SVG 是一種可升級(jí)的圖像文件格式。SVG 的這一特性非常適合表述復(fù)雜而海量的空間數(shù)據(jù),這不僅是因?yàn)樗拇鎯?chǔ)容量小,結(jié)構(gòu)性強(qiáng),更重要的是它可以方便的對這些空間數(shù)據(jù)進(jìn)行維護(hù)與升級(jí)。SVG 基于對像與組合對像,結(jié)構(gòu)性強(qiáng),數(shù)據(jù)具有直觀可讀性,容易對系統(tǒng)進(jìn)行維護(hù)與升級(jí)。SVG 既可以對空間數(shù)據(jù)進(jìn)行查詢,也可以對屬性數(shù)據(jù)進(jìn)行查詢。SVG 支持的是一種精確查詢,實(shí)現(xiàn)簡單,查詢效率高,是柵格圖像中像模式識(shí)別所進(jìn)行的復(fù)雜的概似查詢所無法比擬的。
圖 2A、全國 1:400 萬省級(jí)行政區(qū)劃圖縮小圖 2B、局部放大圖
5.數(shù)據(jù)失真小,可以用真實(shí)的平面投影坐標(biāo)來表述空間數(shù)據(jù); 對空間信息的量化描述最佳表現(xiàn)模式是數(shù)字化制圖,SVG 是完全的數(shù)字制圖模式,非常適合表達(dá)空間量化信息??煽s放向量制圖法可以保證圖像的顯示質(zhì)量不會(huì)因?yàn)槠揭苹蚩s放等操作而受損,而這類操作目前正被廣泛地用于繪制圖表和 Web 站點(diǎn)的導(dǎo)航圖。矢量圖形是可縮放的,并且在圖形縮放或旋轉(zhuǎn)時(shí)不會(huì)降低分辨率或模糊細(xì)節(jié)(如圖 2B 所示,無論是放大的圖像還是縮小的圖像,地圖所表現(xiàn)的精度卻一致的,即1:400 萬比例尺的精度)。可縮放矢量圖形還可以采用輕巧的可移植格式描繪復(fù)雜圖形。由于 SVG 的完全數(shù)字制圖模式,為針對圖元的空間拓?fù)潢P(guān)系研究、空間實(shí)體與實(shí)體屬性的關(guān)聯(lián)分析等課題提供了廣泛的研究空間。 在 SVG 中,可以采用靈活的坐標(biāo)系來描述圖元,在不同坐標(biāo)系之間的轉(zhuǎn)換非常容易實(shí)現(xiàn)。觀察者可以方便的設(shè)置視野范圍,SVG 根據(jù)視野范圍確定伸縮比例,SVG 中可以采用真實(shí)的平面投影坐標(biāo)來表述圖元數(shù)據(jù),這也就是說,你完全可以通過 SVG 繪制出一幅我國疆域的 1:1 比例尺的地圖來,只不過你永遠(yuǎn)看不到這幅地圖的全貌。 SVG 提供了復(fù)雜的曲線擬合功能,同樣可以從圖 1 中可以看出,SVG 通過簡單的方式實(shí)現(xiàn)了 Bezier 曲線的繪制,在 SVG 的路徑命令中,同樣提供了一串點(diǎn)鏈的弧線連接,所有這些,為我們更準(zhǔn)確的描述地理信息提供了基本保證。
6.數(shù)據(jù)量少,傳輸效率高; 與傳統(tǒng)圖形圖像格式相比,SVG 文檔的文件尺寸小得令人吃驚(如上面圖 2A 的大小只有 850k 字節(jié))。這個(gè)優(yōu)點(diǎn)緣自于 SVG 與 SMIL1.0(Synchronized Multimedia Integration Language,同步多媒體集成語言)規(guī)范的部分結(jié)合,同時(shí)也是 SVG 相關(guān)的設(shè)計(jì)機(jī)構(gòu)和人員共同努力的結(jié)果。SVG 壓縮文件尺寸的技術(shù)主要包括:SVG 制作人員可以使用濾鏡效果通過客戶端圖形操作來構(gòu)造圖形,另外,當(dāng)同一個(gè)圖形在一個(gè)文檔中多次出現(xiàn)時(shí)可以使用符號(hào)來替代。SVG 閱讀器可以使用 HTTP 1.1 的數(shù)據(jù)壓縮功能以及采用逐級(jí)渲染的方法來大幅降低用戶瀏覽和交互的時(shí)間。高效的 SVG 詞匯表大大縮減了圖像文件的尺寸,從而減少了下載時(shí)間。 同時(shí),在編輯 SVG 文檔時(shí),可以充分利用基本圖元定義來組合新的復(fù)雜圖元,如通過以經(jīng)定義了弧線來組合多邊形,如下所示: M 4.01505e+006,4.20166e+006 l &arc1; l &arc3; l &arc5; l &arc4; l &arc8; z 這樣一個(gè)簡單的路徑描述語句,就可以準(zhǔn)確的描述北京市懷柔縣的邊界圖,如果用點(diǎn)鏈來表示的話,在 1:100 萬的地圖中,它至少需要 800 個(gè) Double 型的數(shù)據(jù)大小,這樣處理的好處其實(shí)還有很多,我們將在以后相關(guān)文章中討論。經(jīng)過處理后,SVG 的文件大小可以大大的減少。
7. 渲染與濾鏡處理能力強(qiáng),電子地圖質(zhì)量高;
SVG 圖像的清晰度適合于任何屏幕分辨率或打印分辨率(dpi), 支持 ICC 標(biāo)準(zhǔn),RGB,線性填充、圖案填充和遮罩。增強(qiáng)的色彩精度(1600 萬種顏色)使得屏幕顯示的圖像與打印輸出的圖像色彩保持一致。SVG的矢量濾鏡并不直接針對像素進(jìn)行操作,而是作為某一個(gè)對象的獨(dú)立屬性保存在文件中。修改圖像效果只需要重新調(diào)整這些屬性,就可以完成對濾鏡的修改、替換和刪除,非常的便捷。SVG 的矢量濾鏡為遠(yuǎn)程協(xié)作和二次編輯提供了極大的自由度。
SVG 符號(hào)庫填充更是勝人一籌,由于 SVG 支持引入柵格圖像填充,也可以自己定義矢量圖元進(jìn)行填充,SVG 還能夠引入透明柵格圖像,無論什么樣的地圖符號(hào)都可以根據(jù)需要填充到相應(yīng)的方位上。與其它相關(guān)語言相比,SVG 是專業(yè)的圖像標(biāo)準(zhǔn),在圖像處理方面有著獨(dú)特的優(yōu)勢。
1.與 GML、VML、PGML 的比較
矢量標(biāo)識(shí)語言(VML),精度圖像標(biāo)識(shí)語言(PGML)都是作為 W3C 的矢量圖像初始標(biāo)準(zhǔn)在 1998 年提出的。VML 和 PGML 在很多地方非常的類似,但 VML 比較適合一些普通矢量圖像,而 PGML 可以做出更加豐富多彩,適合專業(yè)設(shè)計(jì)和公眾出版的圖像。為了進(jìn)一步促進(jìn)圖像標(biāo)準(zhǔn)的發(fā)展,W3C 成立了 SVG 工作組。SVG工作組將 VML 和 PGML 的優(yōu)勢結(jié)合在了一起,重新推出了新的標(biāo)準(zhǔn)矢量格式,這就是 SVG。
GML、SVG、VML 都與矢量圖形有著密切的關(guān)系:GML 在表示實(shí)體的空間信息的同時(shí)加入了實(shí)體的其他屬性信息,是表示實(shí)體的空間信息和屬性的編碼標(biāo)準(zhǔn),但它并不支持直接顯示圖形。而 VML 和 SVG是在表示圖形的矢量信息同時(shí)加入了圖形的顯示信息(即以什么樣的樣式顯示矢量圖形),是顯示矢量圖形的兩種比較好的格式。相比之下,SVG 是綜合了 VML 的優(yōu)點(diǎn)后推出的,是國際標(biāo)準(zhǔn),它比 VML 具有更多的優(yōu)點(diǎn),也有更廣闊的前景。
2.與 VRML 的比較
虛擬現(xiàn)實(shí)建模語言是用來描述三維交互場景和實(shí)體的一種文件格式。用于聯(lián)接全球網(wǎng)(WWW)。它可以用于創(chuàng)建復(fù)雜場景的三維表示,如裝飾圖像,產(chǎn)品設(shè)計(jì)和虛擬現(xiàn)實(shí)實(shí)現(xiàn)。同 Java 3D 一樣,VRML 也是遵循 OpenGL 標(biāo)準(zhǔn)的。OpenGL 是近年來發(fā)展起來的一個(gè)性能卓越的三維圖形標(biāo)準(zhǔn),它是在 SGI 等多家世界聞名的計(jì)算機(jī)公司的倡導(dǎo)下,以 SGI 的 GL 三維圖形庫為基礎(chǔ)制定的一個(gè)通用共享的開放式三維圖形標(biāo)準(zhǔn)。
VRML 在其描述中也采用了節(jié)點(diǎn)樹的表達(dá)方式。與 VRML 不同的是,SVG 是專門針對二維場景而推出的一種基于是 XML 標(biāo)準(zhǔn)的標(biāo)記言語,對三維場景它顯然無能為力。另一方面,VRML 并不是基于 XML標(biāo)準(zhǔn)的,這對我們實(shí)現(xiàn)三維 OpenGIS 也是一個(gè)不利因素。
3.與 SWF 比較
從某種意義上,SWF 與 SVG 有很多驚人的相似之處。Flash 憑借其優(yōu)越的表現(xiàn)形式和便利的創(chuàng)作工具成為目前網(wǎng)絡(luò)動(dòng)畫設(shè)計(jì)的首選,SWF 日益在網(wǎng)絡(luò)中普及,但與 SVG 相比較,SWF 存在著以下的不足:
* SWF 是一個(gè)非開放標(biāo)準(zhǔn)。這就意味著該技術(shù)掌握在個(gè)體手中,技術(shù)的發(fā)展受到方方面面的限制。同時(shí),SWF 與其他的開放標(biāo)準(zhǔn)也沒有完整的融合方案。盡管 SWF 目前已經(jīng)提供了對 XML 的支持,但這種支持是單方面的。隨著 XML 及其他開放標(biāo)準(zhǔn)的發(fā)展,SWF 的不協(xié)調(diào)性將日益顯著。
* SWF 的可編輯性不如 SVG。SWF 作為最終的動(dòng)畫生成格式,其創(chuàng)作過程封裝在 SWF 文件中,幾乎無法再進(jìn)行二次編輯。同時(shí),SWF 也不提供對文本格式的支持,因此,無法獲得類似 SVG 的查詢圖像中文字的功能。
需要提及的是,在矢量描述語言中,還有一種不容忽視的描述語言—PostScript 語言,它的主要用意是 以相對設(shè)備獨(dú)立的方式為影像提供一種方便的頁面描述語言。在 GIS 中雖然可以用來描述最終的地圖產(chǎn)品,但由于其缺少最起碼的交互性,因而不適宜用來開發(fā) GIS 平臺(tái)。
無論是 SVG 本身所具備的處理矢量圖形的優(yōu)越特性,還是 GIS 平臺(tái)對處理數(shù)據(jù)的特殊要求,將 SVG應(yīng)用到 GIS 中是相得益彰的。文章最后通過與各種矢量描述語言的對比,展現(xiàn) SVG 技術(shù)在構(gòu)建面向網(wǎng)絡(luò)的開放式的 GIS 平臺(tái)過程表現(xiàn)出來的優(yōu)越性。
【1】 Scalable Vector Graphics (SVG) 1.1 Specification [R], W3C Working Draft,2003; 【2】 Christophe Jolif, Software Architect,Comparison between XML to SVG Transformation Mechanisms - The GraphML use case,SVG Open 2003 Conference ,2003-7; 【3】 Mr. Ron Lake, President, Galdos Systems Inc,What is a Map Style? Building on GML and SVG, SVG Open 2003 Conference ,2003-7; 【4】 侯宇,李素有,基于 XML 的 SVG 技術(shù)及其應(yīng)用,計(jì)算機(jī)應(yīng)用研究 2002 年第 5 期; 【5】 吳斌,SVG:未來的 Web 圖形標(biāo)準(zhǔn),PC World China,2000 No. 49
韓元利,博士生。 武漢大學(xué)資源與環(huán)境科學(xué)學(xué)院,武漢市珞喻路129,430079
現(xiàn)在主要研究方向是地理信息系統(tǒng)、三維可視化等。 |