GML、SVG、VML的比較 (轉)
GML、SVG、VML的比較
GML、SVG和VML都是基於的可用來描述向量圖形的標記語言,都是XML詞表,它們的語法並不難理解,但它們都有各自不同的用途和特點,下面簡單介紹一下。
GML(Geography Markup Language)
是基於XML的空間資訊編碼標準,由OpenGIS Consortium (OGC)提出,得到了許多公司的大力支援,如、Galdos、Mnfo、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 Tranoà SVG, VML Draw àDisplay
第一種途徑需要直接操作GML資料進行分析並顯示。
第二種途徑是把GML資料轉換成相應的圖形格式的資料,例如SVG,VML及X3D。然後由已經存在的支援這幾種圖形格式的進行顯示。下面介紹一下SVG和VML。
VML(Vector Markup Language)
是一個最初由開發的XML詞表,現在也只有.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標記裡面可以定義大部分屬性和事件,比如說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作為組織正式推薦的影像格式,擁有眾多的支援機構。像Adobe公司已經宣稱將在推出的Adobe影像處理套件如Illustrator、Photoshop、GoLive和Cyber Studio中整合SVG的全部功能,並且還提供scape Navigator和IE的,以便使其能夠直接支援SVG檔案的瀏覽。Netscape和Microsoft公司也已經開始進軍SVG領域,這標誌著未來的網路瀏覽器將會內建對SVG檔案的支援功能。
總結
GML、SVG、VML都與向量圖形有著密切的關係:GML在表示實體的空間資訊的同時加入了實體的其他屬性資訊,是表示實體的空間資訊和屬性的編碼標準,但它並不支援直接顯示圖形。而VML和SVG是在表示圖形的向量資訊同時加入了圖形的顯示資訊(即以什麼樣的樣式顯示向量圖形),是顯示向量圖形的兩種比較好的格式。相比之下,SVG是綜合了VML的優點後推出的,是國際標準,它比VML具有更多的優點,也有更廣闊的前景。但由於VML有IE的支援,而SVG要想在瀏覽器中顯示就需要外掛,在這一點上,VML優於SVG。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-982766/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 瀏覽器端繪圖技術SVG VML Canvas WebGL介紹瀏覽器繪圖SVGCanvasWeb
- 比較perl模組的版本(轉)
- 流行語言的比較 (轉)
- Hibernate與 MyBatis的比較(轉)MyBatis
- DELPHI的萬用字元比較 (轉)字元
- 比較 python & perl(轉)Python
- ASP.NET 與 JAVA 的比較 (轉)ASP.NETJava
- (轉)ORACLE 中IN和EXISTS比較Oracle
- Python解惑:整數比較 is ==的比較Python
- 字串大小寫轉換和字串的比較字串
- Perl程式與c程式速度的比較(轉)C程式
- 比較四種主要的Linux版本(轉)Linux
- 【轉載】webservice框架xfire和axis的比較Web框架
- 樹形控制元件比較 (轉)控制元件
- Integer的比較
- js 深比較和淺比較JS
- C#比較兩個字串的相似度【轉】C#字串
- 查詢oracle比較慢的session和SQL[轉]OracleSessionSQL
- JAVA中文比較問題的分析和解決 (轉)Java
- Java中對HashMap的深度分析與比較(轉)JavaHashMap
- ISAPI 與CGI 的 比 較 及 其 實 現 (轉)API
- Linux各主要發行版的比較(轉)Linux
- 一些比較生僻的 RPM 命令(轉)
- svg 至 flash的轉化 (轉)SVG
- 轉享:NoSQL 圖資料庫比較SQL資料庫
- php,asp,jsp,c,速度比較 (轉)PHPJS
- Go和Python比較的話,哪個比較好?GoPython
- PHP物件的比較PHP物件
- 各種時間型別的轉換及比較型別
- 六大UNIX作業系統的比較(轉)作業系統
- Microsoft .NET與J2EE的比較[E] (轉)ROS
- 三層交換機和路由器的比較(轉)路由器
- Zope的優點和Apache+PHP+MySQL的比較(轉)ApachePHPMySql
- Python的內建比較函式cmp比較原理剖析Python函式
- 字串比較字串
- Integer比較
- 比較集合
- SAP ERP 與 Oracle ERP 比較(轉)Oracle