999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

WebGIS應(yīng)用中MapInfo文件到SVG的轉(zhuǎn)換

2009-01-01 00:00:00謝芳勇

(華南理工大學(xué) a.計(jì)算機(jī)科學(xué)與工程學(xué)院; b.軟件學(xué)院, 廣州 510006)

摘 要:首先介紹了MapInfo的數(shù)據(jù)交換格式MIF/MID文件的結(jié)構(gòu)特點(diǎn),分析了SVG的特點(diǎn)及其文檔結(jié)構(gòu),建立了MapInfo地圖對(duì)象到SVG中元素的轉(zhuǎn)換模型表,詳細(xì)討論了轉(zhuǎn)換過(guò)程中的一些關(guān)鍵問題并提出了解決方案;最后,以MapInfo格式的廣州市區(qū)地圖為例用Java程序?qū)崿F(xiàn)了到SVG格式的轉(zhuǎn)換并對(duì)其進(jìn)行了實(shí)驗(yàn)分析,從而驗(yàn)證了MapInfo2SVG轉(zhuǎn)換方法的可行性和可靠性。

關(guān)鍵詞:MapInfo; WebGIS; 可縮放矢量圖形; 矢量圖形

中圖分類號(hào):TP391 文獻(xiàn)標(biāo)志碼:A

文章編號(hào):10013695(2009)01017504

Transformation from MapInfo file to SVG in WebGIS application

LI Donga, XIE Fangyongb, YE Youa

(a.School of Computer Science Engineering, b.School of Computer Software, South China University of Technology, Guangzhou 510006, China)

Abstract:Firstly , this paper introduced the structure of MIF/MID file of MapInfo transformation format, analyzed the characteristic and document structure of SVG ,and then established the transformation model between MapInfo’object and SVG’ element, discussed some key problem and also gave the solve method. Finally, as a sample,transformed the MapInfo map of Guangzhou into the SVG formatwith Java programme. The experiment result shows that this method is feasible and effective.

Key words:MapInfo; WebGIS; SVG(scalable vector graphics); vector graphics



0 引言

XML是公認(rèn)的下一代網(wǎng)絡(luò)標(biāo)記語(yǔ)言,而SVG是W3C組織制定的一套基于XML語(yǔ)言的二維的可縮放矢量圖形語(yǔ)言描述規(guī)范,它具有開放性、文件較小、縮放顯示不損失圖像質(zhì)量等優(yōu)點(diǎn),適合在網(wǎng)絡(luò)上傳輸。目前,把SVG技術(shù)用來(lái)傳輸和表現(xiàn)地理空間數(shù)據(jù),特別是將其應(yīng)用到WebGIS中已經(jīng)成為該領(lǐng)域的研究熱點(diǎn),并取得了不少成果。將SVG應(yīng)用于WebGIS的開發(fā),首先要解決的是地圖數(shù)據(jù)的編碼問題,國(guó)內(nèi)外學(xué)者分析了利用SVG表達(dá)空間地圖的可行性并對(duì)利用SVG圖形對(duì)象表達(dá)地圖編碼問題進(jìn)行了探討,提出了一些針對(duì)PC機(jī)的基于WebGIS的SVG地圖編碼方案[1~4]。

基于SVG的地圖技術(shù)受到了普遍關(guān)注,但是現(xiàn)有的SVG數(shù)據(jù)格式的地圖資源還是較少,而且空間地圖數(shù)據(jù)也大多不以SVG格式進(jìn)行存儲(chǔ)。目前,獲取SVG圖形數(shù)據(jù)一般采用兩種方式[1]:a)利用Illustrator等支持SVG格式的圖形圖像軟件交互地生成SVG圖形;b)利用已有的GIS地圖數(shù)據(jù)通過(guò)格式轉(zhuǎn)換為SVG圖形格式[5~7]。方法a)生成的SVG格式數(shù)據(jù)不能滿足WebGIS的數(shù)據(jù)組織要求,并且圖形圖像軟件系統(tǒng)可供利用的也只是JPEG等光柵圖片。相比較于前者,方法b)更為可行和實(shí)用,它充分利用了現(xiàn)有的GIS數(shù)據(jù)資源,不僅可以節(jié)約大量的經(jīng)費(fèi)和人力,為數(shù)據(jù)的快速獲取與更新創(chuàng)造了條件,而且在很大程度上實(shí)現(xiàn)了數(shù)據(jù)的共享,拓展了數(shù)據(jù)的可用性,這無(wú)疑也就增加了數(shù)據(jù)的潛在價(jià)值。

隨著地理信息系統(tǒng)的發(fā)展和空間數(shù)據(jù)量的不斷積累,地理信息系統(tǒng)數(shù)據(jù)的轉(zhuǎn)換和共享逐漸成為WebGIS領(lǐng)域面臨的主要問題。MapInfo是美國(guó)MapInfo軟件公司開發(fā)研制的一套桌面地理信息系統(tǒng),其地圖格式是GIS領(lǐng)域應(yīng)用得最廣泛的地圖數(shù)據(jù)格式之一。針對(duì)目前數(shù)據(jù)轉(zhuǎn)換存在的問題,本文提出了MapInfo2SVG的轉(zhuǎn)換策略,即以MapInfo數(shù)據(jù)格式作為地圖轉(zhuǎn)換數(shù)據(jù)來(lái)源,在對(duì)其文件進(jìn)行一定的分析處理后再轉(zhuǎn)換為SVG數(shù)據(jù)格式。

本文首先介紹了MapInfo和SVG兩種數(shù)據(jù)格式,從理論上分析了它們之間轉(zhuǎn)換的可能性和可靠性,給出了它們之間的數(shù)據(jù)轉(zhuǎn)換模型;然后詳細(xì)論述了從MapInfo格式到SVG格式數(shù)據(jù)轉(zhuǎn)換的算法和具體過(guò)程;最后以MapInfo廣州市區(qū)地圖為例,用Java程序?qū)崿F(xiàn)了其到SVG格式的轉(zhuǎn)換,并對(duì)生成的地圖性能進(jìn)行了實(shí)驗(yàn)分析,結(jié)果表明基于MapInfo2SVG轉(zhuǎn)換策略的有效性,同時(shí)它也為人們提供了一種獲取SVG地圖數(shù)據(jù)的新的有效途徑。

1 MapInfo數(shù)據(jù)格式剖析

MapInfo是美國(guó)MapInfo軟件公司開發(fā)研制的一套桌面地理信息系統(tǒng),其開發(fā)平臺(tái)具備了所有GIS開發(fā)系統(tǒng)的基本功能;目前許多軟、硬件廠家也對(duì)MapInfo提供了專門支持,它已經(jīng)成為地理信息系統(tǒng)領(lǐng)域應(yīng)用最廣泛的工具之一,具有良好的發(fā)展前景。

MapInfo地圖的數(shù)據(jù)格式主要分為TAB 和MIF/MID兩種。TAB是MapInfo惟一的數(shù)據(jù)存儲(chǔ)格式,因?yàn)镸apInfo公司未公開TAB文件格式,不能直接利用MapInfo的存儲(chǔ)格式文件;MIF/MID文件是MapInfo公司提供的一種公開的圖形數(shù)據(jù)交換格式。前者儲(chǔ)存圖形數(shù)據(jù);后者存放屬性數(shù)據(jù)。MapInfo主要是通過(guò)MIF/MID兩個(gè)文件與其他GIS軟件建立數(shù)據(jù)接口,兩者都能用文本編輯工具進(jìn)行編輯,都以ASCII碼格式存儲(chǔ)[8]。

1.1 MIF文件結(jié)構(gòu)

MIF文件由兩部分組成:文件頭和數(shù)據(jù)區(qū)。文件頭包含有關(guān)創(chuàng)建MapInfo表的信息,也就是描述空間對(duì)象的屬性數(shù)據(jù)的元數(shù)據(jù)信息,這些信息在創(chuàng)建存儲(chǔ)屬性數(shù)據(jù)的數(shù)據(jù)庫(kù)表時(shí)是必不可少的;數(shù)據(jù)區(qū)則包含有生成空間對(duì)象的具體數(shù)據(jù)信息。

1)MIF文件頭

MIF文件頭格式如下:

Version 300 //版本信息

Charset \"WindowsSimpChinese\" //文本字符集

Delimiter \",\"http://分隔符

CoordSys Earth Projection 1, 0 //地圖投影的坐標(biāo)類型

Columns 2//屬性數(shù)據(jù)表的列數(shù)及其定義說(shuō)明

name Char(60)

class Char(10)

Data

2)MIF文件數(shù)據(jù)區(qū)

MIF文件數(shù)據(jù)區(qū)在文件頭之后,且由data關(guān)鍵字以單獨(dú)的一行引入。MIF的數(shù)據(jù)區(qū)可以有任意多個(gè)空間對(duì)象,且每一個(gè)空間對(duì)象與MID文件中的記錄對(duì)應(yīng)。如果在MID文件中特定的一行沒有實(shí)際對(duì)應(yīng)的空間對(duì)象,則必須在MIF中的相應(yīng)位置上寫上一個(gè)空白對(duì)象(NONE)以保留該位置。

MIF文件中定義了以下九種圖形對(duì)象:點(diǎn)(point)、線(line)、折線(poly line)、區(qū)域(region)、文本(text)、矩形(rectangle)、圓角矩形(rounded rectangle)、橢圓(ellipse)、圓弧(arc)。數(shù)據(jù)區(qū)的信息就是記錄這些空間幾何對(duì)象的坐標(biāo)和圖形特征。實(shí)例1是圖形對(duì)象為區(qū)域的MIF文件說(shuō)明。

實(shí)例1 Region.MIF

Region1//表示一個(gè)面域

46// 此區(qū)域由46個(gè)點(diǎn)依次相連而成

113.224577 23.123163

……

113.224573 23.122375

113.224577 23.123163

Pen (1, 1, 16777215)//邊界線的樣式

Brush (2, 32768, 16777215)//填充的樣式

Center 113.227941 23.122227 //面域的中心點(diǎn)

1.2 MID文件結(jié)構(gòu)

MID文件存儲(chǔ)的是地圖中每個(gè)對(duì)象的屬性數(shù)據(jù),它所包含的文本數(shù)據(jù)是帶分隔符的數(shù)據(jù),其分隔符是由MIF文件中的Delimiter語(yǔ)句設(shè)定的字符。MID文件是可選的,如果沒有這個(gè)文件或MID文件是個(gè)空文件,則屬性表中所有字段的記錄都是空白的。MID的文件結(jié)構(gòu)按字段從左到右排列,每一行即為一個(gè)記錄,且每一行均與MIF文件中的空間對(duì)象一一對(duì)應(yīng)。

2 SVG格式分析

SVG是W3C組織為適應(yīng)Internet Web應(yīng)用的飛速發(fā)展需要而制定的一套基于XML的二維可縮放矢量圖形語(yǔ)言描述規(guī)范。SVG矢量圖的圖像構(gòu)造原理與GIF、JPG等點(diǎn)位圖完全不同,它利用點(diǎn)和線等矢量化的數(shù)據(jù)描述圖像,并在圖像中包含色彩和位置信息,有效地克服了點(diǎn)位圖的固有缺陷。SVG顯示或輸出圖像時(shí),圖像的品質(zhì)不受設(shè)備分辨率影響,SVG能任意放大和縮小圖像而不會(huì)失真。另外,它是基于文本格式的,文件容量相對(duì)較小,存儲(chǔ)效率高,下載速度快。目前,在WWW領(lǐng)域,最成功的矢量圖像當(dāng)屬VRML(virtual reality modeling language,虛擬現(xiàn)實(shí)建模語(yǔ)言)圖像和Flash。前者主要用于3D造型,但是太復(fù)雜;后者只能用Flash軟件進(jìn)行編輯,且與通用技術(shù)標(biāo)準(zhǔn)間缺乏交互性。SVG在這些方面彌補(bǔ)了這些不足。

SVG是XML的擴(kuò)展,SVG文檔本質(zhì)上就是規(guī)范的XML文檔,其語(yǔ)法和結(jié)構(gòu)也都是完全基于XML的。

a)所有的標(biāo)記都有開始標(biāo)記和結(jié)束標(biāo)記;否則必須注明為空標(biāo)記。空標(biāo)記用反斜杠結(jié)束,如〈path/〉。

b)標(biāo)記必須正確嵌套。如果一個(gè)標(biāo)記在另一個(gè)標(biāo)記中開始,那么它也必須在那個(gè)標(biāo)記中結(jié)束。

c)文檔必須只有一個(gè)根。一個(gè)〈svg〉 〈/svg〉元素包含了一個(gè)SVG文檔的所有內(nèi)容。

d)文檔應(yīng)以XML聲明〈?xml version=\"1.0\"?〉開始。

e)文檔應(yīng)包含一個(gè)DOCTYPE聲明,該聲明指向一個(gè)允許元素的列表。

SVG定義的圖形包括圖形元素和框架元素。圖形元素的基本對(duì)象[9]結(jié)構(gòu)如圖1所示。

圖形元素包含圖形、文本〈text〉和圖像〈image〉三種。SVG定義了六種基本形狀:圓形(circle)、橢圓、矩形、線、折線、多邊形(polygon)。每個(gè)基本形狀對(duì)象都定義了位置和顏色屬性,其顏色和輪廓由fill和stroke等屬性決定。除了以上六種基本形狀以外,路徑(path)也是一個(gè)很重要的形狀元素。路徑由一系列的點(diǎn)規(guī)定,該形狀可以是開放的(如線)或閉合的(如多邊形),并可以包含一條或多條線、曲線和線段。SVG提供了對(duì)嵌入圖像的支持,可以在〈image〉接寫入圖像的二進(jìn)制信息,也可以鏈接指向某個(gè)圖像文件,還可以引入外部圖像文件加以處理。SVG將字體信息儲(chǔ)存在文件內(nèi),在字體處理上采用CSS2中的字體顯示核心技術(shù),以保證在任何情況下看到的字體都是相同的。

SVG框架元素能夠包含圖形元素和其他框架元素,如〈svg〉〈g〉〈defs〉〈symbol〉〈use〉〈desc〉和〈switch〉。〈g〉元素代表Group(組),用來(lái)將一批特征類似的元素定義成一個(gè)集合,它可包含任何可視化元素,也能分組圖形對(duì)象,便于管理和使用;〈defs〉元素用來(lái)定義被引用元素,其所有子元素都是待引用的;〈use〉元素通常用來(lái)引用SVG中已經(jīng)定義好的可視化元素;〈symbol〉元素用來(lái)定義圖像的模板,所定義的模板本身不能被渲染,而只能通過(guò)〈use〉來(lái)引用;〈switch〉元素可以包含其他子元素,但其內(nèi)容是否顯示取決于一定條件,也就是說(shuō)〈switch〉元素的作用與其名字的意義一樣,可對(duì)其內(nèi)容有選擇地顯示。

3 MapInfo格式轉(zhuǎn)換為SVG格式

在研究分析MIF/MID文件和SVG文件后,發(fā)現(xiàn)兩者存在一定的相似性,如它們都是基于文本文件的、定義了很多相類似的圖形元素、通過(guò)記錄圖形的特征數(shù)據(jù)來(lái)描述矢量圖形,所以它們之間存在轉(zhuǎn)換的可行性。但是其文件對(duì)象也還是有一定的差異性,而且在有些圖形的描述上,它們記錄的特征數(shù)據(jù)也是不同的。所以,要實(shí)現(xiàn)MIF/MID文件到SVG文件的轉(zhuǎn)換,不僅要仔細(xì)分析每一類型的圖形對(duì)象在MIF/MID文件中的對(duì)應(yīng)實(shí)體描述,以及SVG中對(duì)應(yīng)于MIF/MID文件中的實(shí)體元素,而且應(yīng)針對(duì)MIF/MID記錄的特征數(shù)據(jù),利用相應(yīng)的公式推導(dǎo)出SVG需要的數(shù)據(jù)。在經(jīng)過(guò)深入研究分析后,建立了圖形對(duì)象、MIF/MID幾何對(duì)象,以及SVG中元素之間的模型轉(zhuǎn)換,如表1所示。

以上只是兩者基本圖形的轉(zhuǎn)換模型表。MapInfo作為商用的桌面地理信息系統(tǒng),它在地圖表達(dá)功能上是很強(qiáng)大的,有很多自己專有的地圖符號(hào),這也是筆者在進(jìn)行轉(zhuǎn)換時(shí)必須要考慮到的。對(duì)于兩種不同的數(shù)據(jù)格式文件,要將它們完整地轉(zhuǎn)換,避免轉(zhuǎn)換過(guò)程中信息的丟失,還是有一定難度的。以下是在轉(zhuǎn)換過(guò)程中需要解決的一些關(guān)鍵技術(shù)問題。

1)坐標(biāo)轉(zhuǎn)換

MapInfo中的對(duì)象和SVG中的圖形都是通過(guò)坐標(biāo)定位的,但是兩者的坐標(biāo)系統(tǒng)是完全不同的,MapInfo的坐標(biāo)是基于經(jīng)緯度坐標(biāo)系的,它是一種經(jīng)緯度坐標(biāo);SVG的坐標(biāo)系是基于平面的,原點(diǎn)在初始視口(屏幕)的左上角,X軸的正向朝右,Y軸的正向朝下。兩者都有自己的坐標(biāo)標(biāo)準(zhǔn),如果要在SVG屏幕上正確顯示圖形數(shù)據(jù),就必須把經(jīng)緯度坐標(biāo)數(shù)據(jù)轉(zhuǎn)換為SVG坐標(biāo)數(shù)據(jù)。

MapInfo地圖有其特定的坐標(biāo)體系,依靠投影和坐標(biāo)系,MapInfo地圖用平面表現(xiàn)了地球?qū)ο蟆apInfo的缺省地圖投影(經(jīng)/緯度)實(shí)際是一種等距離的柱面投影,它使用經(jīng)緯度坐標(biāo)系。經(jīng)度/緯度不是標(biāo)準(zhǔn)的長(zhǎng)度單位,但是經(jīng)度/緯度之差卻是可以確定距離的。基于以上考慮,采取了如下的MapInfo到SVG的坐標(biāo)轉(zhuǎn)換方法:

在要轉(zhuǎn)換的MapInfo地圖坐標(biāo)數(shù)據(jù)中用程序找到具有最小經(jīng)度、最大緯度的參考點(diǎn),其坐標(biāo)為(x0,y0),待轉(zhuǎn)換的MapInfo地圖數(shù)據(jù)坐標(biāo)是(x,y),轉(zhuǎn)換后的SVG地圖數(shù)據(jù)坐標(biāo)為(cx,cy),則將它們的坐標(biāo)關(guān)系用下式表示:

cx=(x-x0)×t,cy=(y0-y)×t

其中:t為放大系數(shù),可以根據(jù)圖形顯示效果的需要來(lái)取值。本文后面的實(shí)驗(yàn)證明了用上述公式來(lái)實(shí)現(xiàn)它們之間的坐標(biāo)轉(zhuǎn)換是完全可行的。

2)MID文件數(shù)據(jù)處理

MID 數(shù)據(jù)文件主要保存空間數(shù)據(jù)的屬性信息,而SVG中并沒有對(duì)象直接對(duì)應(yīng)地理數(shù)據(jù)的屬性編碼,但是SVG基于XML格式,因此可以對(duì)其屬性元素進(jìn)行自定義擴(kuò)充,也可以用SVG腳本中定義的數(shù)組來(lái)存儲(chǔ)屬性數(shù)據(jù)。空間圖形數(shù)據(jù)中可采用ID號(hào)作為圖形對(duì)象的標(biāo)志,而分別自定義其他屬性元素來(lái)描述地理對(duì)象的屬性數(shù)據(jù)。在處理MID文件數(shù)據(jù)時(shí),先將其保存在數(shù)組中,最后在SVG文件中與圖形數(shù)據(jù)進(jìn)行匹配,實(shí)現(xiàn)了對(duì)地理對(duì)象的空間與屬性信息的集成管理。

3)專有地圖符號(hào)的轉(zhuǎn)換

MapInfo有很多自己專有的地圖符號(hào),如碼頭、鐵路、飛機(jī)場(chǎng)、停車場(chǎng)等。在SVG中沒有現(xiàn)成的SVG圖形元素可以采用,必須把SVG的框架元素與圖形元素結(jié)合在一起,才能在SVG中表示復(fù)雜的地圖符號(hào),達(dá)到轉(zhuǎn)換目的。下面的這個(gè)SVG文檔就是為地圖符號(hào)碼頭設(shè)計(jì)的相關(guān)代碼。

實(shí)例2 dock.svg

〈?xml version=\"1.0\" encoding=\"utf16\"?〉

〈!-- Generator: Adobe Illustrator 12.0.0, SVG Export PlugIn. SVG Version: 6.00 Build 51448)--〉

〈!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" 

http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd [

〈!ENTITY ns_svg \"http://www.w3.org/2000/svg\"〉

〈!ENTITY ns_xlink \"http://www.w3.org/1999/xlink\"〉]〉

〈symbolid=\"圖層-碼頭\" 

view Box=\"-7.226 -7.226 14.451 14. 451\"〉

〈g〉

〈polygon fill=\"none\" points=\"-7.226,-7.226 7.226, -7.226 7.226, 7. 226 -7.226,7.226\"/〉

〈g〉

〈path d=\"M7.226-4.946c0-1.258-1.021-2.279-2.28-2.279h-9.894c-1.258,0-2.277,1.021-2.277,2.279

v9.895

c0,1.258,1.02,2.277,2.277,2.277h9.894c1.259,0,2.28-1.02,2.28-2.277V-4.946z\"/〉

〈g〉

〈path fill=\"#FFFFFF\" 

d=\"M-0.51,0.72h-1.732v1.014h1.733V1.723v0.592c

-0.811,0.243-1.398,0.991-1.398,1.88 c0,1.079,0.875,1.955,1.957,1.955s1.959-0.876,1.959-1.955c0-0.916-0.629-1.688-1.479-1.899v-0.56L0.528,1.733h1.801V0.72H0.528

H0.53v-5.45c0,0,2.836,0.17,4.142,2.513L3.917-1.77812.198,1.345L6.24-3.135L5.544-2.728c0,

0-1.045-3.026-5.567-3.026c-4.524,0-5.561,3.347-5.561,3.347l-0.639-0.375l0.266,

2.39312.052-1.035l-0.758-0.443c0,0,1.125-2.626,4.158-2.873L-0.507,0.72H-0.51z\"/〉

〈path d=\"M1.084,4.194C1.084,3.62,0.62,3.16,0.05,3.16c-0.572,0-1.032,0.46-1.032,

1.034c0,0.57,0.46,1.032,1.032,1.032

C0.62,5.227,1.084,4.765,1.084,4.194z\"/〉

〈/g〉

〈/g〉

〈/g〉

〈/symbol〉

〈use xlink:href=\"#碼頭\"width=\"14.451\" 

height=\"14.451\" x=\"-7.226\" y=\"-7.226\" 

transform=\"matrix(1 00 -1 7.2256 7 2256)\"/〉

從代碼中可以看出,用SVG中〈symbol〉元素定義了碼頭的圖形模板,模板中用了〈path〉和〈polygon〉圖形元素;再用〈g〉元素將它們分組在一起,就產(chǎn)生了碼頭這個(gè)復(fù)雜符號(hào);最后利用〈use〉元素就可以引用了,而從MapInfo中碼頭符號(hào)也就可以相應(yīng)地完成到SVG中的轉(zhuǎn)換。類似地可以處理MapInfo其他專有地圖符號(hào)到SVG格式的轉(zhuǎn)換。

4)圖元和圖層的處理

在MapInfo中地理空間數(shù)據(jù)是按如下方法組織的:一個(gè)MapInfo實(shí)例所容納的所有地理空間數(shù)據(jù)都存在其地圖對(duì)象中。地圖對(duì)象由若干個(gè)圖層對(duì)象組成。每個(gè)圖層對(duì)象對(duì)應(yīng)著邏輯上關(guān)聯(lián)的一組地圖圖元對(duì)象。圖元是一個(gè)對(duì)象,在MapInfo對(duì)象模型中處于底層,它由屬性數(shù)據(jù)和圖形數(shù)據(jù)組成。一個(gè)圖層上的所有圖元構(gòu)成整個(gè)圖層。在概念上,圖層相當(dāng)于表,所以可以將圖元理解為記錄。直觀地講,從圖層上得到的點(diǎn)、線、面都是圖元,它們都有屬性數(shù)據(jù)。而在SVG中也有類似的概念,SVG利用元素〈g〉將圖形元素分類成組,這樣每個(gè)SVG圖形元素的屬性就多了一個(gè)ID的圖層屬性描述。于是,對(duì)MapInfo圖元數(shù)據(jù)轉(zhuǎn)換,可以按照表1的轉(zhuǎn)換規(guī)則對(duì)MapInfo圖元對(duì)象和SVG圖形元素進(jìn)行比較,再進(jìn)行相應(yīng)的MapInfo圖元到SVG的轉(zhuǎn)換。對(duì)于圖層對(duì)象的處理,SVG用分組對(duì)象〈g〉來(lái)表示,〈g〉元素的ID屬性表示圖層的標(biāo)志符,轉(zhuǎn)換時(shí)讀取每個(gè)圖形元素的ID圖層屬性,在進(jìn)行比較后,將同一圖層的對(duì)象放在同一個(gè)〈g〉元素中。同時(shí)考慮到數(shù)據(jù)管理的簡(jiǎn)單、方便性,在這里規(guī)定一個(gè)圖層只能包含一類地理實(shí)體,這樣整個(gè)圖層按地理實(shí)體的類型劃分為五類,即點(diǎn)圖層、線圖層、面圖層、注記層和柵格層。在〈g〉元素中定義整個(gè)圖層的符號(hào)樣式,圖層內(nèi)的所有地理實(shí)體都按照這個(gè)樣式繪圖,這樣在SVG中就可以更方便有效地管理地圖數(shù)據(jù)。

4 實(shí)驗(yàn)分析

4.1 實(shí)驗(yàn)環(huán)境

本文通過(guò)Java技術(shù)設(shè)計(jì)了一個(gè)轉(zhuǎn)換器,按照MapInfo2SVG轉(zhuǎn)換策略實(shí)現(xiàn)了MapInfo廣州市區(qū)地圖到SVG格式的轉(zhuǎn)換,并對(duì)轉(zhuǎn)換出來(lái)的地圖進(jìn)行了實(shí)驗(yàn)性能分析,從而證明了該轉(zhuǎn)換策略的有效性。實(shí)驗(yàn)環(huán)境參數(shù)如表2所示。

4.2 實(shí)驗(yàn)步驟

a)選擇MIF/MID文件,讀取其內(nèi)容,并顯示圖形所包含的所有圖層。

b)初始化SVG文檔,創(chuàng)建以.svg為后綴名的SVG空文檔,并向空文檔中加入包含XML聲明、文檔類型定義和參考DTD的SVG文檔固定格式。

c)選擇要轉(zhuǎn)換的圖層,將圖層的樣式信息以實(shí)體的方式寫入SVG文檔。

d)MIF文件到SVG文件數(shù)據(jù)轉(zhuǎn)換:

(a)選取坐標(biāo)參考點(diǎn)。

(b)根據(jù)從MIF文件讀出的信息判斷對(duì)象的類型,并按照映射關(guān)系和轉(zhuǎn)換算法執(zhí)行相應(yīng)的轉(zhuǎn)換,在SVG文檔中加入對(duì)應(yīng)的圖形元素。

(c)根據(jù)MID的屬性信息,進(jìn)行必要的屬性轉(zhuǎn)換,并與相應(yīng)的圖形信息進(jìn)行匹配。

(d)將轉(zhuǎn)換后的數(shù)據(jù)寫入SVG文檔。

e)對(duì)轉(zhuǎn)換后的數(shù)據(jù)以圖層為單位進(jìn)行空間數(shù)據(jù)的規(guī)整處理。規(guī)整處理是在規(guī)定的誤差范圍內(nèi),將地圖對(duì)象進(jìn)行調(diào)整、分割或刪除,消除輸入誤差,便于建立拓?fù)潢P(guān)系和進(jìn)行空間分析。

f)在SVG文檔中添加〈/svg〉標(biāo)記,關(guān)閉文件,結(jié)束轉(zhuǎn)換。

4.3 性能分析

SVG格式地圖的顯示需要在瀏覽器中安裝相應(yīng)的插件,如從Adobe公司的網(wǎng)站中下載支持SVG的插件SVG Viewer 3.0后,在IE或Netscape中就可以顯示SVG格式的地圖。

圖2是轉(zhuǎn)換出來(lái)的廣州市區(qū)SVG格式文件在IE 6.0中的顯示效果圖。

從圖中可以看出,它完整地實(shí)現(xiàn)了MapInfo廣州地圖的還原顯示,體現(xiàn)了MapInfo2SVG轉(zhuǎn)換策略的可行性和可靠性。

表3中, 把廣州市區(qū)地圖SVG文件與原MapInfo文件作了對(duì)比,在地圖信息量沒有丟失的情況下,SVG文件比MapInfo文件小了很多,這正好是SVG文件小、傳輸效率高的體現(xiàn),也說(shuō)明了MapInfo2SVG轉(zhuǎn)換策略的優(yōu)越性。

表3 地圖文件對(duì)比表

文件格式圖層數(shù)文件大小/MB

MapInfo502.15

SVG501.56

總的來(lái)看,通過(guò)Java技術(shù)設(shè)計(jì)的轉(zhuǎn)換器,完整地還原了MapInfo廣州地圖的顯示,而且轉(zhuǎn)換出來(lái)的SVG地圖相比原MapInfo地圖文件小,有一定的優(yōu)越性。利用MapInfo2SVG這種轉(zhuǎn)換策略,最大程度地避免了轉(zhuǎn)換過(guò)程中的信息丟失,這在目前現(xiàn)成SVG地圖資源少的情況下,不失為一種獲取SVG地圖數(shù)據(jù)的有效方法和途徑。

5 結(jié)束語(yǔ)

本文詳細(xì)討論和分析了MIF/MID文件和SVG文件的特點(diǎn)及數(shù)據(jù)結(jié)構(gòu),建立了它們相應(yīng)元素的轉(zhuǎn)換模型表,并用Java開發(fā)技術(shù)實(shí)現(xiàn)了廣州地圖MapInfo格式的文件到SVG文件的轉(zhuǎn)換,驗(yàn)證了MapInfo2SVG轉(zhuǎn)換策略的可行性。同時(shí),將轉(zhuǎn)換出來(lái)的SVG廣州市區(qū)地圖進(jìn)行了實(shí)驗(yàn)分析,地圖顯示效果和性能都得到了較好的體現(xiàn)。這進(jìn)一步表明:該轉(zhuǎn)換策略不僅可行和可靠,而且還具有一定的優(yōu)越性,這也對(duì)其他GIS平臺(tái)空間數(shù)據(jù)轉(zhuǎn)換工具的設(shè)計(jì)和開發(fā)具有一定的指導(dǎo)意義。MapInfo2SVG轉(zhuǎn)換策略為獲取SVG地圖數(shù)據(jù)提供了一種新的有效途徑,能更好地推動(dòng)SVG在WebGIS中的應(yīng)用,以及在更大范圍內(nèi)普及WebGIS服務(wù),具有一定的實(shí)用價(jià)值。 

參考文獻(xiàn):

[1]柳玲,劉水清,王宇.基于SVG的WebGIS的設(shè)計(jì)與實(shí)現(xiàn)[J]. 重慶大學(xué)學(xué)報(bào):自然科學(xué)版,2007,30(4):108112.

[2]王興玲. SVG與矢量地圖的Web發(fā)布技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(10):14. 

[3]徐云和,謝剛生,程朋根,等.基于SVG的空間數(shù)據(jù)可視化[J].計(jì)算機(jī)應(yīng)用研究,2005,22(2):4647.

[4]甘早斌,李志欣,彭彬. 矢量圖形編輯系統(tǒng)的數(shù)據(jù)模型及其實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2005,27(6):4547. 

[5]劉旭軍,關(guān)佶紅.WebGIS應(yīng)用中GML文檔到SVG的轉(zhuǎn)換[J].計(jì)算機(jī)應(yīng)用, 2004,24(2):157160. 

[6]侯宇,李素有.基于XML的SVG技術(shù)及其應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2002,19(5):136138. 

[7]魏建軍,歐陽(yáng)一鳴,杜曉榮,等. 基于XML的AutoCAD圖形與SVG圖形轉(zhuǎn)換研究[J]. 微電子學(xué)與計(jì)算機(jī), 2005,22(2):124127. 

[8]The MapInfo interchange file(MIF) format specification[K]. Troy,NY: MapInfo Corporation, 1999.

[9]劉嘯,畢永年. 基于XML的SVG應(yīng)用指南[M] .北京:清華大學(xué)出版社,2001. 

[10]方穎,曹加恒,曾承.一種基于GML實(shí)現(xiàn)互操作WebGIS的新機(jī)制[J]. 計(jì)算機(jī)工程, 2007,33(7):4446,52.

[11]Scalable vector graphics (SVG) 1.1 specification[S/OL].(2001). http://www.w3c.org/TR/SVG 1.1/, 2001.

[12]LANDAU R H, VEDINER D V, WATTANAKASIWICH P W,et al. Future scientific digital documents with MathML,XML and SVG[J].Computing in Science and Engineering,2002,4(2):7785.

主站蜘蛛池模板: 成人免费午夜视频| 免费人欧美成又黄又爽的视频| 亚洲日本中文字幕乱码中文| 91无码国产视频| 欧美日韩国产精品va| 欧美人与牲动交a欧美精品| 精品久久久久无码| 久久婷婷色综合老司机| 国产主播喷水| 国产无码网站在线观看| 成人一区专区在线观看| 成年人国产视频| 亚洲天堂2014| 国产亚洲第一页| 免费国产小视频在线观看| 中文字幕在线一区二区在线| 热思思久久免费视频| 欧美人在线一区二区三区| 欧美成人精品一区二区| 99热国产在线精品99| 国产经典三级在线| 国产精品高清国产三级囯产AV| 欧美午夜一区| 手机精品视频在线观看免费| 全色黄大色大片免费久久老太| 亚洲视频黄| Jizz国产色系免费| 3344在线观看无码| 最新亚洲av女人的天堂| 91蝌蚪视频在线观看| 国产成人精品男人的天堂下载| 国产成人盗摄精品| 国产玖玖视频| 精品国产香蕉伊思人在线| 老色鬼欧美精品| 亚洲欧洲日产国码无码av喷潮| AV熟女乱| 亚洲欧美人成人让影院| 国产精品网曝门免费视频| 亚洲国产天堂久久综合226114| 欧美一级色视频| 久久青草免费91线频观看不卡| 亚洲精品第一在线观看视频| 亚洲视频免费在线看| 91年精品国产福利线观看久久| 欧美中文字幕在线二区| 9丨情侣偷在线精品国产| 97se亚洲综合| 六月婷婷精品视频在线观看| 欧洲日本亚洲中文字幕| AV色爱天堂网| 亚洲精品国产自在现线最新| 亚洲欧美一区二区三区麻豆| 日韩在线影院| 亚洲国产AV无码综合原创| 国产成人精品18| a级毛片一区二区免费视频| 色欲色欲久久综合网| 特级aaaaaaaaa毛片免费视频| 亚洲成a人在线播放www| 亚洲精品第一在线观看视频| 国产视频你懂得| 最新国产网站| 狂欢视频在线观看不卡| 嫩草在线视频| 在线观看网站国产| 亚洲精品图区| 四虎亚洲国产成人久久精品| 久久精品国产电影| 国产青青草视频| 中文字幕1区2区| 国产免费久久精品99re不卡| 成人伊人色一区二区三区| 亚洲国产黄色| 精品少妇人妻av无码久久| 欧美亚洲国产一区| 欧美日本在线观看| 久久亚洲精少妇毛片午夜无码| a网站在线观看| 成人噜噜噜视频在线观看| 亚洲欧美色中文字幕| 国产丝袜一区二区三区视频免下载|