張 毅
(上海市政工程勘察設(shè)計有限公司,上海 200092)
可擴展矢量圖形規(guī)范(SVG)是一種基于XML的用來描述二維矢量圖形和矢量/點陣混合圖形的標(biāo)識語言,在網(wǎng)絡(luò)技術(shù)上,SVG可以與其他規(guī)范融合,從而滿足更廣泛的用戶需求[1]。
SVG是一種基于XML標(biāo)準(zhǔn)的矢量圖形,其文件格式靈活、擁有內(nèi)嵌式動態(tài)字體,并支持SMIT,使得在圖片內(nèi)進行交互成為可能,這是以往的圖像所不能做到的。因此,SVG具備了一些獨特的優(yōu)點[2]:1)下載瀏覽速度快;2)硬件支持廣泛;3)圖形定位與檢索方便;4)表現(xiàn)效果豐富、準(zhǔn)確的顏色描述和良好的可重用性;5)跨平臺功能?;赟VG眾多優(yōu)點,SVG發(fā)布地理空間信息技術(shù)已經(jīng)成為學(xué)者研究的熱門課題,具有良好的發(fā)展前景。
SVG文檔分為三個主要部分:一個可選的序言、主體和可選的尾聲構(gòu)成。SVG文檔的后綴名通常是“.SVG”。也有一種壓縮的格式,一些SVG解析器能夠處理,它的文件后綴名是“.SVGZ”。
1)序言。SVG文檔一般是以序言開頭,序言包括:一個XML聲明,接著是一個可選的文檔類型聲明。XML聲明,在大多數(shù)情況下不是必需的,但它有助于清晰地把數(shù)據(jù)標(biāo)識為XML,并且允許處理文檔時進行一些優(yōu)化。如果包括了聲明,那么字符串常量“<?XML”必須是文檔最前面的5個字符,不允許在前面有空白或者嵌入注釋。在XML1.0規(guī)范中已經(jīng)定義了三個參數(shù):Version——這是必需的。它的值當(dāng)前必須為1.0。該參數(shù)用來保證對XML未來版本的支持。Encoding——可選。其值必須是一種合法的字符編碼名稱,例如utf-8,utf-16或者是ISO-8859-1。如果沒有包含這個參數(shù),就假設(shè)是utf-8或utf-16編碼,這取決于開始的“<?XML”字符串的格式。Encoding的值大小寫不是敏感的。Standalon——可選。其值必須是yes或no。如果是yes就意味著所有必需的實體聲明都包含在文檔內(nèi),如果是no就意味著需要外部的DTD。一般情況下,我們應(yīng)該將帶有Version和encoding的XML聲明進行顯式地定義。接著是文檔類型聲明。文檔類型聲明指的是外部的DTD或包含DTD的一部分。
2)主體。在SVG文件的主體部分中,包括了多種元素。如<g>元素、<text>元素、<path>元素等。SVG 提供了六種基本圖形,包括矩形、圓、橢圓、直線、曲線和閉合曲面,同時,SVG提供了<tnetadata>元素來存儲元數(shù)據(jù)。提出了將數(shù)據(jù)描述信息放到<metadata>與</metadata>中。
1)客戶端解決方式??蛻舳私鉀Q方式的主要代表有CGI法和插件法,這兩種方法的特點是它將矢量圖形轉(zhuǎn)化為柵格圖形,并在客戶端提供一個接口,將瀏覽器和服務(wù)器聯(lián)系在一起,進而實現(xiàn)一些客戶需要的功能,區(qū)別在于,插件法將服務(wù)器的一個特定功能通過插件移到客戶端,以滿足客戶的需求。總的來說,這類方法實現(xiàn)方便、簡單,效率較高,缺點是實現(xiàn)的功能有限,利用這種方法的典型產(chǎn)品代表為Autodesk的MapGuide。
2)服務(wù)器端解決方式[3]。這類實現(xiàn)的方法的特點是將問題解決在服務(wù)器端,典型代表為ActiveX方式和基于JavaApplet的應(yīng)用程序方式[4]。這種方法的主要特點是通過客戶發(fā)送請求,然后在服務(wù)器上通過插件控件或者利用程序語言實現(xiàn)客戶需要的功能或者實現(xiàn)瀏覽器上的IE功能等。其優(yōu)點是實現(xiàn)功能復(fù)雜而且實現(xiàn)效果較好,圖像精度比較高,缺點是當(dāng)數(shù)據(jù)量比較大的時候處理速度較慢,而且這種方法功能實現(xiàn)需要程序員修改服務(wù)器軟件,工作量較大[5,6]。目前,ESRI的 ARCIMS產(chǎn)品采用了該技術(shù),它將GIS矢量數(shù)據(jù)作為一種壓縮的以ArcXML語法描述數(shù)據(jù)流形式從服務(wù)器端傳遞到客戶端。
生成SVG文件的方法很多,在此簡單介紹靜態(tài)生成SVG文件的方法:利用文本編輯器來靜態(tài)生成SVG文件。打開文本編輯器,輸入下面的代碼,將這個文件存儲成后綴為svg,然后用瀏覽器打開就能看到SVG圖形。例如輸入如下代碼,即可顯示圖1的圖形效果:代碼:
圖形效果見圖1。
本論文主要對SVG在WebGIS中的應(yīng)用進行了一些探討,筆者對SVG在WebGIS中的實現(xiàn)作了相關(guān)的研究并以實例進行說明,通過Adobe公司的插件Adobe SVG Viewer對上面設(shè)計的SVG文件進行編輯并實現(xiàn)了其各項功能,并且對SVG文件進行了解析。
[1]WilliamR Parkhurst.Cisco.組播路由與交換技術(shù)[M].北京:機械工業(yè)出版社,1999.
[2]周強中,談俊忠.SVG在WebGIS中的應(yīng)用[D].南京:南京大學(xué)城市與資源學(xué)系,2001.
[3]朱京華,張 英,占傳杰.WebGIS中的SVG技術(shù)應(yīng)用研究及實現(xiàn)[D].南昌:南昌大學(xué)信息工程技術(shù)研究中心,2001.
[4]陳傳波,王 青.基于SVG的實時數(shù)據(jù)動態(tài)發(fā)布技術(shù)的研究[J].小型微型計算機系統(tǒng),2002(5):21-22.
[5]周文生.基于SVG的WebGIS研究[J].中國圖像圖形學(xué)報,2002(7):36-37.
[6]許春杰,鄒樂君,沈曉華.SVG、GML在 WebGIS中的應(yīng)用[J].遙感信息,2002(3):97-99.