基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換_第1頁
基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換_第2頁
基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換_第3頁
基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換_第4頁
基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換 隨著軟件組件式開發(fā)技術(shù)的逐漸成熟,gis組件(如esri的mapobject和mapinfo的mapx)在專業(yè)型地理信息系統(tǒng)開發(fā)中扮演了重要的角色3,然而gis二次開發(fā)組件都具有其天生的局限性,即不同系統(tǒng)之間的數(shù)據(jù)轉(zhuǎn)換功能非常弱,特別是基本不具備從gis數(shù)據(jù)到autocad制圖系統(tǒng)的數(shù)據(jù)格式轉(zhuǎn)換功能,影響gis的數(shù)據(jù)共享。因此為了實(shí)現(xiàn)數(shù)據(jù)的共享,必須進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換,目前,通用的數(shù)據(jù)格式轉(zhuǎn)換方式有以下幾種: 一、數(shù)據(jù)格式轉(zhuǎn)換方法 1、常規(guī)的gis數(shù)據(jù)格式轉(zhuǎn)化方法 就是采用某種編程語言首先讀取源數(shù)據(jù)文件,提取源文件中的圖形信息和屬 _,然

2、后再寫入目標(biāo)文件中去。這種方法需要同時(shí)非常熟悉兩種數(shù)據(jù)文件的格式,因此給數(shù)據(jù)轉(zhuǎn)換帶來了不小的難度。 2、利用數(shù)據(jù)格式轉(zhuǎn)換工具 這種方法簡單方便,但是通用數(shù)據(jù)格式轉(zhuǎn)換器難以避免的會丟失一些圖形信息,轉(zhuǎn)換出來的圖形一般還需要一些特別的處理,如圖形顏色設(shè)置,符號設(shè)置,區(qū)域填充設(shè)置。 3、利用第三方數(shù)據(jù)文件訪問工具進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換 這種方法靈活簡單,也具有很強(qiáng)的靈活性,開發(fā)難度小,代價(jià)就是需要第三方的數(shù)據(jù)訪問組件。隨著gis組件式開發(fā)技術(shù)的逐漸成熟,各種gis組件都具有訪問其本身的gis數(shù)據(jù)的功能,如mapobject可以訪問esrishapefiles、arcinfocoverage和vpf等矢量數(shù)

3、據(jù)格式。利用gis組件的這種特點(diǎn)可以靈活的自己編寫與其他數(shù)據(jù)格式轉(zhuǎn)換的程序,或者在gis系統(tǒng)的二次開發(fā)中集成數(shù)據(jù)格式轉(zhuǎn)換的功能,實(shí)現(xiàn)gis數(shù)據(jù)共享。本文研究的內(nèi)容就是利用gis組件(mapobject)進(jìn)行由shape到dxf的格式轉(zhuǎn)換。 二、基于gis的從shape文件到dxf文件格式轉(zhuǎn)換的方法 1、shape文件結(jié)構(gòu) esri的shape文件是二進(jìn)制文件,能夠同時(shí)存儲空間圖形數(shù)據(jù)和屬性數(shù)據(jù)。一個(gè)shape文件包括三個(gè)文件:一個(gè)主文件(*.shp),一個(gè)索引文件(*.shx),和一個(gè)dbase(*.dbf)表。主文件是一個(gè)直接存取變量記錄長度文件,其中每個(gè)記錄描述一個(gè)有它自己的vertice

4、s列表的shape。在索引文件中,每個(gè)記錄包含對應(yīng)主文件記錄離主文件頭開始的偏移,dbase表包含了實(shí)體的屬性數(shù)據(jù)。圖形數(shù)據(jù)和屬性數(shù)據(jù)通過索引號建立一一對應(yīng)的關(guān)系。 shape文件是按照地物類型來組織的。地物類型可以分為簡單的分為點(diǎn)(point)、線(line)、面(polygon)三種類型,一個(gè)shape文件中只能包括一種類型的地物,即只能包括點(diǎn)、線或者面狀地物中的一種。點(diǎn)狀地物存儲的是一組坐標(biāo)(x,y),線包括簡單線和多段線,存儲的是一系列的坐標(biāo)串(x1,y1,x2,y2),面狀地物存儲的是一系列封閉的坐標(biāo)串(x1,y1,x2,y2,x1,y1)。 2、dxf文件結(jié)構(gòu) dxf文件有兩種格式

5、:asc碼文本格式和二進(jìn)制格式。前者可以用記事本打開,簡單易讀,后者存儲效率高2。dxf文件最小組成單位是組(group),一個(gè)dxf文件由多個(gè)組組成。每個(gè)組在dxf文件中占兩行。第一行是組碼(groupcode),它是一個(gè)整數(shù);第二行是組值(groupvalue),它的數(shù)據(jù)類型取決于組碼的數(shù)值。例如x坐標(biāo)的組碼為10,y坐標(biāo)的組碼為20,z坐標(biāo)的組碼為30。一個(gè)dxf文件分為多個(gè)節(jié)(section),每個(gè)節(jié)均由多個(gè)組(group)組成。每個(gè)節(jié)均由一個(gè)組值為字符串“section”的0組開始,后跟組值為表示段名的字符串的2組,其后為組成該節(jié)的各個(gè)組,最后以組值為字符串“endsec”的0組表示

6、該節(jié)結(jié)束。所有節(jié)都結(jié)束后,在dxf文件的最后是組值為字符串eof(endoffile)的0組作為文件的結(jié)束標(biāo)志。一個(gè)完整的dxf文件由以下七個(gè)節(jié)(section)組成: a標(biāo)題(header)節(jié):包括與圖形相關(guān)聯(lián)的變量的設(shè)置,例如圖形節(jié)最大、最小x坐標(biāo)和最大、最小y坐標(biāo)($limmin,$limmax),點(diǎn)顯示模式($pdmode),點(diǎn)尺寸($pdsize)等。其中的每一個(gè)變量都通過組碼9給出變量名,并由其后的組碼提供變量值。 b類(classes)節(jié):類節(jié)保存由應(yīng)用程序定義的類,而該類的實(shí)例則出現(xiàn)在塊節(jié)(blocks)、實(shí)體節(jié)(entities)和對象節(jié)(objects)中。 c表(tabl

7、e)節(jié):包含命名項(xiàng)的定義,存放一系列表。包括線型(ltype)表、層(layer)表、文本字樣(style)表、視(view)表、用戶坐標(biāo)系統(tǒng)(usc)表、視窗配制(vport)表、尺寸標(biāo)注式樣(dimstyle)表、應(yīng)用標(biāo)識(appid)表。 d塊(block)節(jié):存放塊定義的實(shí)體。對圖形中每個(gè)塊引用,在塊節(jié)中都必需有一個(gè)條目與之對應(yīng)。 e實(shí)體(entities)節(jié):存放圖形實(shí)體,其中包括塊插入實(shí)體。dxf圖形文件中的所有圖元(包括點(diǎn)、線、面、插入塊,注記文字等實(shí)體)都將在entities節(jié)定義。 f實(shí)體(objects)節(jié):存儲非圖形對象。 g預(yù)覽圖像(thumbnailimage)節(jié):只

8、有當(dāng)預(yù)覽圖像被保存在dxf文件中時(shí)該節(jié)才存在。 編寫一個(gè)構(gòu)造完備的dxf文件的程序是比較困難且煩瑣的,因?yàn)楸仨毐3謭D形的一致性,以使autocad能夠接受它,同時(shí)還必須保持信息的完整性。值得慶幸是一個(gè)dxf文件可以只包含以上七個(gè)節(jié)中的若干個(gè)節(jié),而不是全部節(jié)。以上七個(gè)節(jié)中,最重要的是實(shí)體(entities)節(jié),實(shí)體節(jié)存儲了dxf文件所有的圖形對象。一個(gè)最簡單的dxf文件可以只包含實(shí)體(entities)節(jié),而不需要包含其他任何節(jié)。這樣就大大降低了dxf文件編寫的難度。 3、shape文件到dxf文件轉(zhuǎn)化的實(shí)現(xiàn) 由于shape文件是二進(jìn)制文件,且文件格式復(fù)雜,直接使用編程語言讀取shape文件具有一定的困難,由此作者使用第三方開發(fā)組件mapobject提供的對shape文件的數(shù)據(jù)訪問接口來讀取shape文件內(nèi)容,大大降低了shape文件到dxf文件格式轉(zhuǎn)化的編程工作量。 mapob

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論