GML、SVG和VML都是基於XML的可用來描述矢量圖形的標記語言,都是XML詞表,它們的語法並不難理解,但它們都有各自不同的用途和特點,下面簡單介紹一下。5 ?* C4 [5 S9 f. ~$ [; y
6 P7 m# s z" k$ g, I
GML(Geography Markup Language)2 i+ u O6 n1 |% P- J
是基於XML的空間信息編碼標準,由OpenGIS Consortium (OGC)提出,得到了許多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。運用GML,封裝的地理數據和圖形解釋是清楚分離的。# o# O. R3 D* u9 H
% ^8 |: M$ Y- kGML基於XML用文本表示地理信息$ x2 w* g j# I4 }8 V
由於GML可看成是XML的一個具體的詞表,熟悉了XML就比較容易理解GML。而且隨著XML的應用日益廣泛,GML也將受益。另外文本比較簡單、直觀,容易理解和編輯。: \3 G. {& ?" i# g" U8 \6 r: p
( @% Q4 r5 G8 ?, a7 ~GML封裝了地理信息及其屬性
j( F/ U, K7 Q7 Y$ ]% d* j$ c* V: v6 oGML基於地理信息抽像模型,即空間實體特徵及屬性封裝。地理特徵包括一系列的屬性和相應的幾何信息,一般來說屬性由名字、類型和值組成,幾何信息由基本元素如點、線、面、曲線、多邊形等組成。目前GML主要局限在二維應用,正擴展到二維半和三維空間以及特徵間的拓撲關係。GML允許相當複雜的特徵,如特徵間的嵌套。例如飛機場由出租汽車道、飛機跑道等組成。
& x8 j" p4 E: h$ W
: A; e9 \$ |$ j8 J# E0 H6 U0 e/ UGML封裝了空間地理參考系統
( \3 j) `) X' _空間地理參考系統是地理信息系統數據處理的基礎。GML封裝了空間地理參考系統、主要的投影關係等,保證分佈式處理的擴展性和靈活性。' T- N$ h4 p" C- Z4 e9 q. s
q! h3 c- [3 Z1 m( ?0 eGML可以實現地理數據的分佈式存儲
+ d% I: N( G; t- t5 O$ `7 jGML對地理數據的分發是非常方便的技術手段,但其作用不止局限於此,同樣可以成為地理數據分佈式存儲的重要手段。主要的技術玩具是XLink和Xpointer。5 f7 o0 U/ K* q8 _( J+ f* Y B4 }+ G
從上邊的介紹可以看出GML作為描述空間信息的元語言的一些優點。它只能描述空間實體的矢量信息和屬性,具體顯示的時候可採用兩種不同的途徑:. @6 Y" Y3 A6 p. t
l GML Drawa Display1 ?3 `. k$ i7 L3 p, U2 ]2 f* I
l GML Transform a SVG, VML Draw aDisplay" d, `/ K4 A- j# s2 u
第一種途徑需要直接作GML數據進行分析並顯示。6 {5 V- D, Z z* F" S& `2 a) U
第二種途徑是把GML數據轉換成相應的圖形格式的數據,例如SVG,VML及X3D。然後由已經存在的支持這幾種圖形格式的軟件進行顯示。下面介紹一下SVG和VML。
( m' l/ I* q2 Y, B2 }% g( k9 |4 c) f, I# d6 V
VML(Vector Markup Language)
" _7 K; l# Y7 u, O: _) e1 s5 j是一個最初由Microsoft開發的XML詞表,現在也只有IE5.0以上版本對VML提供支持。使用VML可以在IE中繪製矢量圖形,所以有人認為VML就是在IE中實現了畫筆的功能。下面介紹一下VML的優點:9 C( F1 g5 z, j
基於XML標準
9 @9 |, o' w) x% a. ^# P# s4 uXML是公認擁有無窮生命力的下一代網絡標記語言, VML具有先天的優勢,它的表示方法簡單,易於擴展等等。
" M0 x a* K8 S" ^支持高質量的矢量圖形顯示
$ [' U3 L/ M. [4 M9 d3 JVML支持廣泛的矢量圖形特徵,它們基於由相連接的直線和曲線描述路徑。在VML中使用兩個基本的元素:shape和group。這兩個元素定義了VML的全部結構;shape描述一個矢量圖形元素,而group用來將這些圖形結合起來,這樣它們可以作為一個整體進行處理。
8 ^& j/ f; o! V) }! s7 aVML規範包括大量的支持多種不同矢量圖形特徵的元素。下面是VML的預定義圖形元素:
9 Z- X) z/ \9 Wl Shape
% Q7 q5 Q2 | ^l Path+ G5 I6 p6 p- ]0 I; J" M
l Line 9 Q, L+ a" ]6 B. O! n% v' [' `
l Polyline
# a: \, y- M+ s, V5 ~! ~l Curve ' t I4 J+ r* d8 O" ^7 s0 z
l Rect
% O1 e! v+ p2 k% {1 [# @, l' g. `l Roundrect" m# ^: H2 m$ Q2 ~7 r% v, m% v
l Oval
7 w/ L* B5 r7 b! ]# B2 t6 El Arc: X) H, \4 t/ P' X! o3 R
l Group4 n8 x" F: D3 U* _8 _9 C
由文本構成的圖像,並可集成到HTML" ~( j3 C/ Y3 G" p0 Q: D8 g
由於VML使用簡單的文本來表示圖像,這樣就可用很少的字節來表示比較複雜的圖像。VML與HTML兼容,通過在HTML中聲明VML命名空間並聲明處理函數,就可以和其他HTML元素一樣使用VML元素,在客戶端瀏覽器顯示圖像。VML標記裡面可以定義DHTML大部分屬性和事件,比如說id, name, title, onmouseover 等等。+ h7 @' ~/ o2 p2 l* |
支持交互與動畫
. h* n: `1 @: Z, r但VML的功能不只是繪圖,他還可以在圖形中嵌入文本,並可實現超鏈,還可通過腳本語言實現一定的動畫功能。VML賞析
% T3 [$ c4 h4 y) c0 j3 C9 F( L& g x" A
SVG(Scalable Vector Graphics)! U" n8 X+ c8 S9 ]* ?. V ?) w E
SVG是一種基於XML的開放的矢量圖形描述語言。SVG圖像是與XML1.0兼容的文檔,SVG元素是指示如何繪製圖像的一些指令,閱讀器(Viewer)解釋這些指令,把SVG圖像在指定設備上顯示出來。使用SVG可以在網頁上顯示出各種各樣的高質量的矢量圖形,支持很多您想像得出的功能:幾何圖形、動畫、漸變色、濾鏡效果等。最關鍵的是,它也是完全用普通文本來描述的!也就是說,這是一種專門為網絡而設計的基於文本的圖像格式。 |
|