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

GML、VML、SVG的比較(轉)

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。

有的文章亦說,SVG必須使用Adobe的外掛,現已停止支援,而且Esri不支援SVG,所以雖然SVG是國際標準,仍然無法普及。

值得學習的用VML和SVG開發工作流設計器 2012年02月20日 ⁄ .NetHtml5 ⁄ 暫無評論 ⁄ 被圍觀 227 views+

因為以前就看到這個這個設計器,只是以前它只支援IE,今天發現它能支援其他瀏覽器了,所以推薦一下,也值得我們去學習,流程圖是OA的重點啊!
工作流是許多系統中必備的一種功能,而工作流設計器就顯示對使用者很重要。視覺化的設計器對於客戶來說就更好了,非常直觀,有效果的減少使用者的煩腦。 在各種應用中有b/s的系統,有c/s的系統。不同的系統工作流程都是相似的。當今web應用日益廣泛,因此本文將講述如何在web上實現工作流設計器。其中,圖形技術發揮著至關重要的作用,可升級向量影象( SVG, Scalable Vector Graphics)和VML (Vector Markup Language)的產生有著十分積極的意義。它具有支援向量圖和動畫、由文字構成圖形易於操作、對點陣圖形相容等特點。然而,不同瀏覽器對兩種標準的支援並不一致, 微軟的IE瀏覽器系列對VML支援比較好,而其他的瀏覽器軟體對SVG標準支援更完美。這也使得開發基於Web的圖形系統變得更加複雜。

多比圖形控制元件出現簡化了的這種開發難度,它是一款基於Web的向量圖形控制元件,能夠檢測瀏覽器型別,自動選擇VML或SVG方案進行做圖, 類似於網頁上的Visio控制元件。

VML技術

VML (VectorMarkup Language)是XML1. 0 的一個應用,使用VML 可以在IE 5. 0 以上版本中繪製向量圖形。由於VML 是基於新一帶網路標記語言XML 標準的,也就是說,表示方法簡單,易於擴充套件,資料與表現相分離,同時VML 支援高質量的向量圖形顯示,它基於相連線的直線和曲線描述路徑。其次VML 由文字構成,可以很方便地融合到HTML檔案中,可用很少的位元組來表示較複雜的影象,可以和其它HTML元素一樣使用VML元素,在客戶端瀏覽器顯示影象。VML可以使用DHTML大部分屬性和事件,如id, onmouseover等。最後VML 的功能不只是繪圖,它可以在圖形中嵌入文字,並可實現超鏈,通過指令碼控制還可以實現動畫效果。

SVG技術

SVG是由W3C制定的基於XML來描述二維向量圖型的一個開放標準,它用文字格式的描述性語言來描述影象內容,因此是一種和影象解析度無關的向量圖形格式。它具有以下優點:

1.影象檔案可讀,易於修改和編輯。

2.與現有技術可以互動融合。另外, SVG檔案還可嵌入JavaScript指令碼來控制SVG物件。

3.SVG圖形格式可以用來動態生成圖形。例如,可用SVG動態生成具有互動功能的地圖,嵌入網頁中,並顯示給終端使用者。

4. 如前所述, SVG文件作為一種規範的XML文件,能夠很好地與W3C其他開放標準如DOM, CSS,XSL, XL ink, Xpointer, SM IL, HTML, XHTML等進行協同工作,簡化異質系統間的資訊交流,方便資料庫的存取。

多比控制元件簡介

多比圖形控制元件出現簡化了的這種開發難度,它是一款基於Web的向量圖形控制元件,能夠檢測瀏覽器型別,自動選擇VML或SVG方案進行做圖, 類似於網頁上的Visio控制元件,是目前國內外最佳的基於web向量圖解決方案,可以用於電力、化工、煤炭、工控組態軟體、模擬、地理資訊系統、工作流、複雜報表 工業SCADA系統、ERP流程設計系統、圖形管理、圖形拓撲分析、GIS地理資訊系統系統、工程製圖等領域。

多比圖形編輯器實現了圖形、影象和文字的有機統一。它除了支援HTML 中常用的標記,如文字、影象、連結、互動性、CSS的使用、指令碼( Scrip t)外,還提供了大量針對圖形、影象、動畫的特定標記。對SVG圖形檔案進行編輯管理的過程為: SVG圖形檔案經XML 解析器開啟,並在記憶體中生成一個物件樹,用滑鼠事件來驅動指令碼執行,指令碼通過DOM介面對物件進行相關的操作,來實現圖形繪製、編輯等功能。

工作流設計器的實現

在web上作設計器,圖形有了,剩下的就是控制這些圖形元素。

工作流程有兩種基本元素一種我們稱之為節點,一點稱之為關係(節點間的關係)也就是工作流的流向問題。要實現工作流設計器有幾個要點:

1、支援工作流元素的新增、刪除、移動。

2、建立節點間的關係

3、將設計好的流程儲存到永久物質裡(如檔案,資料庫等)

4、可以從永久資料裡讀取資料,並表現為圖形。


相關推薦

GMLVMLSVG比較

GML、SVG和VML都是基於XML的可用來描述向量圖形的標記語言,都是XML詞表,它們的語法並不難理解,但它們都有各自不同的用途和特點,下面簡單介紹一下。 GML(Geography Markup Language) 是基於XML的空間資訊編碼標準,由OpenGIS C

8字符編碼-Python

如何 tab wid cnblogs 錯誤 此刻 str 網絡 額外 一 了解字符編碼的知識儲備 1. 文本編輯器存取文件的原理(nodepad++,pycharm,word)     打開編輯器就打開了啟動了一個進程,是在內存中的,所以在編輯器編寫的內容也都是存放與內存中

MySQL:日期函數時間函數處理

減少 expr lec datetime style pan 獲取 相減 sel date_add() 增加MYSQL 獲取當前時間加上一個月 update user set leverstart=now(),leverover=date_add(NOW(), int

《算法導論》讀書筆記--第12章課後題

秦九韶 ons 全局變量 思考 end exc ray 存在 檢查 第一章 轉自http://www.cnblogs.com/batteryhp/p/4654860.html 思考題 1-1(運行時間的比較)確定時間t內求解的問題的最大規模。 上面是網上提供的答案。

Socket請求和Http請求的各自特點區別及適用場景

網絡協議 strong 將不 控制 應用 如何 傳輸安全 socket實現 訪問協議 http://blog.csdn.net/hexinli/article/details/50500316 Socket實現服務器與客戶端之間的物理連接,並進行數據傳輸。主要有TCP/U

linux===linux後臺運行和關閉查看後臺任務

我們 top 實現 目錄 這樣的 作業 net 超級 運行命令 fg、bg、jobs、&、ctrl + z都是跟系統任務有關的,雖然現在基本上不怎麽需要用到這些命令,但學會了也是很實用的 一。& 最經常被用到這個用在一個命令的最後,可以把這個命令放到後臺執

ipifconfig命令與IP

localhost 子接口 問題 5.0 keep mas html 路由配置 ipaddr Q:問題的要求就是在linux下不重新情況下,如何臨時增加一個IP及臨時刪除一個IP ? A:該問題除了可以通過ifconfig命令完成外,也可以通過ip命令完成,不過兩者是有區別

最全Pycharm教程26——Pycharm搜索導航之文件名符號名搜索

技術分享 tail link isp 嘗試 多重 image pop 教程 1、準備一個工程   向你的工程中添加一個Python文件,並輸入一些源碼,例如:   2、轉到對應文件、類、符號   Pycharm提供的一個很強力的功能就是能夠根據名稱跳轉到任何文件、類、符

總結Linux Redis 操作常用命令

tab ESS 哈希 大對象 由於 edi always wan 情況下 Redis的配置 1. Redis默認不是以守護進程的方式運行,可以通過該配置項修改,使用yes啟用守護進程 daemonize no 2. 當Redis以守護進程方式運行時,Redis默認會把

Centos中iptables和firewall防火墻開啟關閉查看狀態基本設置等

firewall 開啟 highlight tar service服務 sha sysconfig linu accept iptables防火墻 1、基本操作 # 查看防火墻狀態 service iptables status # 停止防火墻 service ip

最大匹配最小頂點覆蓋最大獨立集最小路徑覆蓋

在講述這兩個演算法之前,首先有幾個概念需要明白: 二分圖:  二分圖又稱二部圖,是圖論中的一種特殊模型。設G=(V,E)是一個無向圖,如果頂點V可以分割為兩個互不相交的子集(A,B),並且圖中的每條邊(i,j)所關聯的兩個頂點i和j分別屬於這兩個不同的頂點集(i in A, j in

VS中空專案win32專案控制檯程式的區別

空專案,大多數想單純建立c++工程的新同學,開啟vs後很可能不知道選擇建立什麼工程,這時候請相信我,空專案是你最好的選擇。因為空工程不包含任何的原始碼檔案,接下來你只需要在相應的原始碼資料夾和標頭檔案資料夾加入相應的.cpp和.h檔案即可。(注:對於首次使用vs的新同學來說,執行程式的時候很可能,閃一下就不見

CygwinMinGMSys區別與聯絡

轉自:https://www.biaodianfu.com/cygwin-ming-msys.html 什麼是Cygwin? Cygwin,原Cygnus出品(已被紅帽收購),目前是RedHat名下的專案。專案的目的是提供運行於 Windows 平臺的類 Unix 環境(以 GNU 工具為代表)。為了達到這

C++ 中 ZeroMemorymemset 危險需慎用

使用C/C++程式設計時,常使用ZeroMemory、memset或 “={0}”來對結構體物件進行初始化或清零。然而這三種方式都有各自的特點,使用時需謹慎,否則容易出現嚴重錯誤 memset void *memset(void *s,int ch,si

前端常用外掛工具類庫彙總

前言 在開發中,我們經常會將一些常用的程式碼塊、功能塊進行封裝,為的是更好的複用。那麼,被抽離出來獨立完成功能,通過API或配置項和其他部分互動,便形成了外掛。 下面這些是我在工作中積累的一些常用的前端開源外掛,這裡只是羅列出來,詳細的用法各個外掛官網或者Gayhub都有介紹。注意:往往一個

需求分析概要設計詳細設計析義

<一> 需求分析(requirement analysis)       需求分析是當前軟體工程中的關鍵問題。需求分析階段的任務是:在可行性分析的基礎上,進一步瞭解、確定使用者需求,準確地回答“系統必須做什麼”的問題。獲得需求規格說明書。還涉及到軟體系統的

va_listva_startva_argva_end巨集的使用

當你的函式的引數個數不確定時,就可以使用上述巨集進行動態處理,這無疑為你的程式增加了靈活性。 Example: CString AppendString(CString str1,...)//一個連線字串的函式,引數個數可以動態變化{      LPCTSTR str=str

【Python】例項方法類方法靜態方法之間區別

面相物件程式設計中,類方法和靜態方法是經常用到的兩個術語。 邏輯上講:類方法是隻能由類名呼叫;靜態方法可以由類名或物件名進行呼叫。 在C++中,靜態方法與類方法邏輯上是等價的,只有一個概念,不會混淆。 而在Python中,方法分為三類例項方法、類方法、靜態方法。程

二叉樹的遍歷,二叉樹的建立前序遍歷中序遍歷後序遍歷

 // BTree.cpp : Defines the entry point for the console application./* 作者:成曉旭 時間:2001年7月2日(9:00:00-14:00:00) 內容:完成二叉樹的建立、前序遍歷、中序遍歷、後序遍歷 時間:2001年7月2日(14:0

VirtualBox 和 Vmware 的比較

幾星期前我的XP出了個毛病,每隔幾分鐘就出現鍵盤和滑鼠沒有響應,持續5、6秒鐘,懷疑是病毒所致,可是卻無從下手。加上這段時間大多數時間都在 ubuntu 下面,使用感覺很不錯,於是有了使用它作為主作業系統的想法。可是我的工作要求使用windows下的工具進行程式設計和測試,完