久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換的方法

時間:2024-08-05 11:43:58 計算機畢業(yè)論文 我要投稿
  • 相關(guān)推薦

基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換的方法

畢業(yè)論文

 

[摘  要]:本文詳細了DXF和Shape文件結(jié)構(gòu),并介紹了1種從Shape文件到DXF文件轉(zhuǎn)換的簡單,解決了GIS系統(tǒng)軟件與AutoCAD制圖軟件之間的數(shù)據(jù)共享的。并經(jīng)過作者實踐證明,該方法簡單有效。

[關(guān)鍵詞]:DXF文件,Shape文件,MapObject

A Way of Format Translation

from Shape File to Dxf File on Base of ComGIS

Abstract:This article analyzes the form of DXF file and Shape file in detail, and introduces a simple method of translating Shape file into DXF file to solve the problem of the data sharing between AutoCAD system and GIS system. Through the author’s practice, it has been confirmed that the means is efficient.

Key words:Dxf File   Shape File   MapObject

 

隨著軟件組件式開發(fā)技術(shù)的逐漸成熟,GIS組件(如ESRI 的MapObject和MapInfo的MapX)在專業(yè)型地理信息系統(tǒng)開發(fā)中扮演了重要的角色[3],然而GIS2次開發(fā)組件都具有其天生的局限性,即不同系統(tǒng)之間的數(shù)據(jù)轉(zhuǎn)換功能非常弱,特別是基本不具備從GIS數(shù)據(jù)到AutoCAD制圖系統(tǒng)的數(shù)據(jù)格式轉(zhuǎn)換功能,GIS的數(shù)據(jù)共享。因此為了實現(xiàn)數(shù)據(jù)的共享,必須進行數(shù)據(jù)格式的轉(zhuǎn)換,,通用的數(shù)據(jù)格式轉(zhuǎn)換方式有以下幾種:

1、數(shù)據(jù)格式轉(zhuǎn)換方法

1、常規(guī)的GIS數(shù)據(jù)格式轉(zhuǎn)化方法

就是采用某種編程語言首先讀取源數(shù)據(jù)文件,提取源文件中的圖形信息和屬性信息,然后再寫入目標文件中去。這種方法需要同時非常熟悉兩種數(shù)據(jù)文件的格式,因此給數(shù)據(jù)轉(zhuǎn)換帶來了不小的難度。

2、利用數(shù)據(jù)格式轉(zhuǎn)換工具

這種方法簡單方便,但是通用數(shù)據(jù)格式轉(zhuǎn)換器難以避免的會丟失1些圖形信息,轉(zhuǎn)換出來的圖形1般還需要1些特別的處理,如圖形顏色設(shè)置,符號設(shè)置,區(qū)域填充設(shè)置。

3、利用第3方數(shù)據(jù)文件訪問工具進行數(shù)據(jù)格式轉(zhuǎn)換

這種方法靈活簡單,也具有很強的靈活性,開發(fā)難度小,代價就是需要第3方的數(shù)據(jù)訪問組件。隨著GIS組件式開發(fā)技術(shù)的逐漸成熟,各種GIS組件都具有訪問其本身的GIS數(shù)據(jù)的功能,如MapObject可以訪問ESRI Shape Files、ArcInfo Coverage 和VPF等矢量數(shù)據(jù)格式。利用GIS組件的這種特點可以靈活的自己編寫與其他數(shù)據(jù)格式轉(zhuǎn)換的程序,或者在GIS系統(tǒng)的2次開發(fā)中集成數(shù)據(jù)格式轉(zhuǎn)換的功能,實現(xiàn) GIS數(shù)據(jù)共享。本文的就是利用GIS組件(MapObject)進行由Shape到Dxf的格式轉(zhuǎn)換。

2、基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換的方法

1、 Shape文件結(jié)構(gòu)

ESRI的Shape文件是2進制文件,能夠同時存儲空間圖形數(shù)據(jù)和屬性數(shù)據(jù)。1個Shape文件包括3個文件:1個主文件(*.shp),1個索引文件(*.shx),和1個dBASE(*.dbf)表。主文件是1個直接存取變量記錄長度文件,其中每個記錄描述1個有它自己的vertices列表的shape。在索引文件中,每個記錄包含對應(yīng)主文件記錄離主文件頭開始的偏移,dBASE表包含了實體的屬性數(shù)據(jù)。圖形數(shù)據(jù)和屬性數(shù)據(jù)通過索引號建立11對應(yīng)的關(guān)系。

Shape文件是按照地物類型來組織的。地物類型可以分為簡單的分為點(Point)、線(Line)、面(Polygon)3種類型,1個Shape文件中只能包括1種類型的地物,即只能包括點、線或者面狀地物中的1種。點狀地物存儲的是1組坐標(X,Y),線包括簡單線和多段線,存儲的是1系列的坐標串(X1,Y1,X2,Y2…),面狀地物存儲的是1系列封閉的坐標串(X1,Y1,X2,Y2, …, X1,Y1)。

2、DXF文件結(jié)構(gòu)   

DXF文件有兩種格式:ASC碼文本格式和2進制格式。前者可以用記事本打開,簡單易讀,后者存儲效率高[2]。DXF文件最小組成單位是組(GROUP),1個DXF文件由多個組組成。每個組在DXF文件中占兩行。第1行是組碼(GROUP CODE),它是1個整數(shù);第2行是組值(GROUP VALUE),它的數(shù)據(jù)類型取決于組碼的數(shù)值。例如X坐標的組碼為10,Y坐標的組碼為20,Z坐標的組碼為30。1個DXF文件分為多個節(jié)(SECTION),每個節(jié)均由多個組(GROUP)組成。每個節(jié)均由1個組值為字符串“SECTION”的0組開始,后跟組值為表示段名的字符串的2組,其后為組成該節(jié)的各個組,最后以組值為字符串“ENDSEC”的0組表示該節(jié)結(jié)束。所有節(jié)都結(jié)束后,在DXF文件的最后是組值為字符串EOF(END OF FILE)的0組作為文件的結(jié)束標志。1個完整的DXF文件由以下7個節(jié)(SECTION)組成:

A.        標題(HEADER)節(jié):包括與圖形相關(guān)聯(lián)的變量的設(shè)置,例如圖形節(jié)最大、最小X坐標和最大、最小Y坐標($LIMMIN,$LIMMAX),點顯示模式($PDMODE),點尺寸($PDSIZE)等。其中的每1個變量都通過組碼 9 給出變量名,并由其后的組碼提供變量值。

B.        類(CLASSES)節(jié):類節(jié)保存由程序定義的類,而該類的實例則出現(xiàn)在塊節(jié)(BLOCKS)、實體節(jié)(ENTITIES)和對象節(jié)(OBJECTS)中。

C.        表(TABLE)節(jié):包含命名項的定義,存放1系列表。包括線型(LTYPE)表、層(LAYER)表、文本字樣(STYLE)表、視(VIEW)表、用戶坐標系統(tǒng)(USC)表、視窗配制(VPORT)表、尺寸標注式樣(DIMSTYLE)表、應(yīng)用標識(APPID)表。

D.       塊(BLOCK)節(jié):存放塊定義的實體。對圖形中每個塊引用,在塊節(jié)中都必需有1個條目與之對應(yīng)。

E.        實體(ENTITIES)節(jié):存放圖形實體,其中包括塊插入實體。DXF圖形文件中的所有圖元(包括點、線、面、插入塊,注記文字等實體)都將在ENTITIES節(jié)定義。

F.        實體(OBJECTS)節(jié):存儲非圖形對象。

G.       預(yù)覽圖像(THUMBNAILIMAGE)節(jié):只有當預(yù)覽圖像被保存在DXF文件中時該節(jié)才存在。

編寫1個構(gòu)造完備的DXF文件的程序是比較困難且煩瑣的,因為必須保持圖形的1致性,以使AutoCAD能夠接受它,同時還必須保持信息的完整性。值得慶幸是1個DXF文件可以只包含以上7個節(jié)中的若干個節(jié),而不是全部節(jié)。以上7個節(jié)中,最重要的是實體(ENTITIES)節(jié),實體節(jié)存儲了DXF文件所有的圖形對象。1個最簡單的DXF文件可以只包含實體(ENTITIES)節(jié),而不需要包含其他任何節(jié)。這樣就大大降低了DXF文件編寫的難度。

3、 Shape文件到DXF文件轉(zhuǎn)化的實現(xiàn)

由于Shape文件是2進制文件,且文件格式復(fù)雜,直接使用編程語言讀取Shape文件具有1定的困難,由此作者使用第3方開發(fā)組件MapObject提供的對Shape文件的數(shù)據(jù)訪問接口來讀取Shape文件內(nèi)容,大大降低了Shape文件到DXF文件格式轉(zhuǎn)化的編程工作量。

MapObject是目前最優(yōu)秀的GIS2次開發(fā)組件之1,他提供了1系列的GIS制圖功能和訪問ESRI Shape Files的數(shù)據(jù)訪問接口[1]。利用MapObject對Shape文件的數(shù)據(jù)訪問功能來提取Shape的圖形信息,具有不丟失圖形信息、數(shù)據(jù)訪問簡單等優(yōu)點。下面是Shape文件類型與DXF圖元類型對照表:

地物類型

Shape文件地物類型

[1]  

【基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換的方法】相關(guān)文章:

AVI文件格式分析及其播放控件的設(shè)計07-08

圖形文件的類型轉(zhuǎn)換VC++06-15

基于Matlab軟件讀取GPS標準格式Rinex文件的新方法05-04

基于DirectShow的MXF文件播放插件08-11

基于空間轉(zhuǎn)換的企業(yè)創(chuàng)新過程描述與管理06-29

基于聚類分析的數(shù)據(jù)挖掘方法06-27

基于網(wǎng)格的聚類方法研究07-13

三維坐標轉(zhuǎn)換的公共點選擇方法08-21

利用VBA編程實現(xiàn)從EXCEL表到AUTOCAD表轉(zhuǎn)換11-01

從文本到田野論歷史專業(yè)實踐教學(xué)的模式轉(zhuǎn)換論文10-11