GML、SVG、VML的比較
GML、SVG和VML都是基於XML的可用來描述向量圖形的標記語言,都是XML詞表,它們的文法並不難理解,但它們都有各自不同的用途和特點,下面簡單介紹一下。
GML(Geography Markup Language)
是基於XML的空間資訊編碼通訊協定,由OpenGIS Consortium (OGC)提出,得到了許多公司的大力支援,如Oracle、Galdos、MapInfo、CubeWerx等。運用GML,封裝的地理資料和圖形解釋是清楚分離的。
GML基於XML用文本表示地理資訊
由於GML可看成是XML的一個具體的詞表,熟悉了XML就比較容易理解GML。而且隨著XML的應用日益廣泛,GML也將受益。另外文本比較簡單、直觀,容易理解和編輯。
GML封裝了地理資訊及其屬性
GML基於地理資訊抽象模型,即空間實體特徵及屬性封裝。地理特徵包括一系列的屬性和相應的幾何資訊,一般來說屬性由名字、類型和值組成,幾何資訊由基本元素如點、線、面、曲線、多邊形等組成。目前GML主要局限在二維應用,正擴充到二維半和三維空間以及特徵間的拓撲關係。GML允許相當複雜的特徵,如特徵間的嵌套。例如飛機場由出租汽車道、飛機跑道等組成。
GML封裝了空間地理參考系統
空間地理參考系統是地理資訊系統資料處理的基礎。GML封裝了空間地理參考系統、主要的投影關係等,保證分散式處理的擴充性和靈活性。
GML可以實現地理資料的分布式儲存
GML對地理資料的分發是非常方便的技術手段,但其作用不止局限於此,同樣可以成為地理資料分布式儲存的重要手段。主要的技術工具是XLink和Xpointer。
從上邊的介紹可以看出GML作為描述空間資訊的元語言的一些優點。它只能描述空間實體的向量資訊和屬性,具體顯示的時候可採用兩種不同的途徑:
l GML Drawà Display
l GML Transform à SVG, VML Draw àDisplay
第一種途徑需要直接操作GML資料進行分析並顯示。
第二種途徑是把GML資料轉換成相應的圖形格式的資料,例如SVG,VML及X3D。然後由已經存在的支援這幾種圖形格式的軟體進行顯示。下面介紹一下SVG和VML。
VML(Vector Markup Language)
是一個最初由Microsoft開發的XML詞表,現在也只有IE5.0以上版本對VML提供支援。使用VML可以在IE中繪製向量圖形,所以有人認為VML就是在IE中實現了畫筆的功能。下面介紹一下VML的優點:
基於XML標準
XML是公認擁有無窮生命力的下一代網路標記語言, VML具有先天的優勢,它的表示方法簡單,易於擴充等等。
支援高品質的向量圖形顯示
VML支援廣泛的向量圖形特徵,它們基於由相串連的直線和曲線描述路徑。在VML中使用兩個基本的元素:shape和group。這兩個元素定義了VML的全部結構;shape描述一個向量圖形元素,而group用來將這些圖形結合起來,這樣它們可以作為一個整體進行處理。
VML規範包括大量的支援多種不同向量圖形特徵的元素。下面是VML的預定義圖形元素:
l Shape
l Path
l Line
l Polyline
l Curve
l Rect
l Roundrect
l Oval
l Arc
l Group
由文本構成的映像,並可整合到HTML
由於VML使用簡單的文本來表示映像,這樣就可用很少的位元組來表示比較複雜的映像。VML與HTML相容,通過在HTML中聲明VML命名空間並聲明處理函數,就可以和其他HTML元素一樣使用VML元素,在用戶端瀏覽器顯示映像。VML標記裡面可以定義DHTML大部分屬性和事件,比如說id, name, title, onmouseover 等等。
支援互動與動畫
但VML的功能不只是繪圖,他還可以在圖形中嵌入文本,並可實現超鏈,還可通過指令碼語言實現一定的動畫功能。VML賞析
SVG(Scalable Vector Graphics)
SVG是一種基於XML的開放的向量圖形描述語言。SVG映像是與XML1.0相容的文檔,SVG元素是指示如何繪製映像的一些指令,閱讀器(Viewer)解釋這些指令,把SVG映像在指定裝置上顯示出來。使用SVG可以在網頁上顯示出各種各樣的高品質的向量圖形,支援很多您想象得出的功能:幾何圖形、動畫、漸層色、濾鏡效果等。最關鍵的是,它也是完全用普通文本來描述的!也就是說,這是一種專門為網路而設計的基於文本的映像格式。
SVG是對PGML和VML的一種綜合,所以VML的優點也就成為SVG的優點,例如:
基於XML標準
高品質的向量映像
由文本構成的映像
我們可以不用任何影像處理工具,僅僅用記事本就可以產生一個SVG映像。這對於影像處理的工作者來說可能會感到不可思議。其實仔細想想也可以理解,向量映像一般是以演算法指令來描述,建立在文本基礎上的SVG映像中所有的描述語句都可以直接觀察到,所以也非常容易進行二次修改與更新,"可升級"的特點在這裡可以得到恰當的反映。
另外,與VML相比SVG還有一些優點:
靈活的檔案格式
SVG可升級的特性不僅僅表現在二次修改方面,還表現在另外很多地方,包括這裡介紹的靈活的檔案格式。在以前的映像中,文本都作為位元影像而儲存於映像中,映像形成以後不能單獨對文本進行修改;在PNG格式中這一點有所改進,文本可作為一個獨立的層存在;SVG更靈活地擴充了映像的檔案格式,它由三個部分組成:向量圖形、位元影像和文字。這樣SVG不僅僅可以應用向量映像和文字對象,同樣可以納入位元影像,可以製作出任何其它格式映像能達到的效果。由於檔案格式是文本形式的,可以很容易地在以後任何時候進行修改。而且在頁面啟動並執行過程中,也可以對很多部分做即時的修改,其中的圖形描述還可以重複使用。
支援互動和動畫
SVG支援SMIL(synchronized multimedia integration language),使得使用者可以自由的同SVG中的元素完成一些互動的動作,從而完成既定的目標,這一點在目前單獨依靠圖片是完成不了的,需要由網頁中的指令碼語句來實現。
支援字元尋找
尋找"圖片"中的字元,在SVG中成為可能。而這在其它格式的圖片檔案中則是不可能的。
支援Xlink 和Xpointer
這樣就可以在SVG文檔之間製作超級連結。
SVG作為W3C組織正式推薦的映像格式,擁有眾多的支援機構。像Adobe公司已經宣稱將在推出的Adobe影像處理套件如Illustrator、Photoshop、GoLive和Cyber Studio中整合SVG的全部功能,並且還提供Netscape Navigator和IE的外掛程式,以便使其能夠直接支援SVG檔案的瀏覽。Netscape和Microsoft公司也已經開始進軍SVG領域,這標誌著未來的網路瀏覽器將會內建對SVG檔案的支援功能。
總結
GML、SVG、VML都與向量圖形有著密切的關係:GML在表示實體的空間資訊的同時加入了實體的其他屬性資訊,是表示實體的空間資訊和屬性的編碼通訊協定,但它並不支援直接顯示圖形。而VML和SVG是在表示圖形的向量資訊同時加入了圖形的顯示資訊(即以什麼樣的樣式顯示向量圖形),是顯示向量圖形的兩種比較好的格式。相比之下,SVG是綜合了VML的優點後推出的,是國際標準,它比VML具有更多的優點,也有更廣闊的前景。但由於VML有IE的支援,而SVG要想在瀏覽器中顯示就需要安裝外掛程式,在這一點上,VML優於SVG。