1. 程式人生 > >GML、SVG、VML的比較

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 Pathl Line l Polylinel 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。