


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換的方法
[摘要]:本文詳細(xì)分析了DXF和Shape文件結(jié)構(gòu),并介紹了一種從Shape文件到DXF文件轉(zhuǎn)換的簡(jiǎn)單方法,解決了GIS系統(tǒng)軟件與AutoCAD制圖軟件之間的數(shù)據(jù)共享的問(wèn)題。并經(jīng)過(guò)作者實(shí)踐證明,該方法簡(jiǎn)單有效。[關(guān)鍵詞]:DXF文件,Shape文件,MapObjectAWayofFormatTranslationfromShapeFiletoDxfFileonBaseofComGISKeywords:DxfFileShapeFileMapObject隨著軟件組件式開(kāi)發(fā)技術(shù)的逐漸成熟,GIS組件(如ESRI的MapObject和MapInfo的MapX)在專業(yè)型地理信息系統(tǒng)開(kāi)發(fā)中扮演了重要的角色[3],然而GIS二次開(kāi)發(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)化方法就是采用某種編程語(yǔ)言首先讀取源數(shù)據(jù)文件,提取源文件中的圖形信息和屬性信息,然后再寫(xiě)入目標(biāo)文件中去。這種方法需要同時(shí)非常熟悉兩種數(shù)據(jù)文件的格式,因此給數(shù)據(jù)轉(zhuǎn)換帶來(lái)了不小的難度。2、利用數(shù)據(jù)格式轉(zhuǎn)換工具這種方法簡(jiǎn)單方便,但是通用數(shù)據(jù)格式轉(zhuǎn)換器難以避免的會(huì)丟失一些圖形信息,轉(zhuǎn)換出來(lái)的圖形一般還需要一些特別的處理,如圖形顏色設(shè)置,符號(hào)設(shè)置,區(qū)域填充設(shè)置。3、利用第三方數(shù)據(jù)文件訪問(wèn)工具進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換這種方法靈活簡(jiǎn)單,也具有很強(qiáng)的靈活性,開(kāi)發(fā)難度小,代價(jià)就是需要第三方的數(shù)據(jù)訪問(wèn)組件。隨著GIS組件式開(kāi)發(fā)技術(shù)的逐漸成熟,各種GIS組件都具有訪問(wèn)其本身的GIS數(shù)據(jù)的功能,如MapObject可以訪問(wèn)ESRIShapeFiles、ArcInfoCoverage和VPF等矢量數(shù)據(jù)格式。利用GIS組件的這種特點(diǎn)可以靈活的自己編寫(xiě)與其他數(shù)據(jù)格式轉(zhuǎn)換的程序,或者在GIS系統(tǒng)的二次開(kāi)發(fā)中集成數(shù)據(jù)格式轉(zhuǎn)換的功能,實(shí)現(xiàn)GIS數(shù)據(jù)共享。本文研究的內(nèi)容就是利用GIS組件(MapObject)進(jìn)行由Shape到Dxf的格式轉(zhuǎn)換。二、基于ComGIS的從Shape文件到Dxf文件格式轉(zhuǎn)換的方法1、Shape文件結(jié)構(gòu)ESRI的Shape文件是二進(jìn)制文件,能夠同時(shí)存儲(chǔ)空間圖形數(shù)據(jù)和屬性數(shù)據(jù)。一個(gè)Shape文件包括三個(gè)文件:一個(gè)主文件(*.shp),一個(gè)索引文件(*.shx),和一個(gè)dBASE(*.dbf)表。主文件是一個(gè)直接存取變量記錄長(zhǎng)度文件,其中每個(gè)記錄描述一個(gè)有它自己的vertices列表的shape。在索引文件中,每個(gè)記錄包含對(duì)應(yīng)主文件記錄離主文件頭開(kāi)始的偏移,dBASE表包含了實(shí)體的屬性數(shù)據(jù)。圖形數(shù)據(jù)和屬性數(shù)據(jù)通過(guò)索引號(hào)建立一一對(duì)應(yīng)的關(guān)系。Shape文件是按照地物類型來(lái)組織的。地物類型可以分為簡(jiǎn)單的分為點(diǎn)(Point)、線(Line)、面(Polygon)三種類型,一個(gè)Shape文件中只能包括一種類型的地物,即只能包括點(diǎn)、線或者面狀地物中的一種。點(diǎn)狀地物存儲(chǔ)的是一組坐標(biāo)(X,Y),線包括簡(jiǎn)單線和多段線,存儲(chǔ)的是一系列的坐標(biāo)串(X1,Y1,X2,Y2…),面狀地物存儲(chǔ)的是一系列封閉的坐標(biāo)串(X1,Y1,X2,Y2,…,X1,Y1)。2、DXF文件結(jié)構(gòu)DXF文件有兩種格式:ASC碼文本格式和二進(jìn)制格式。前者可以用記事本打開(kāi),簡(jiǎn)單易讀,后者存儲(chǔ)效率高[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組開(kāi)始,后跟組值為表示段名的字符串的2組,其后為組成該節(jié)的各個(gè)組,最后以組值為字符串“ENDSEC”的0組表示該節(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è)變量都通過(guò)組碼9給出變量名,并由其后的組碼提供變量值。B.類(CLASSES)節(jié):類節(jié)保存由應(yīng)用程序定義的類,而該類的實(shí)例則出現(xiàn)在塊節(jié)(BLOCKS)、實(shí)體節(jié)(ENTITIES)和對(duì)象節(jié)(OBJECTS)中。C.表(TABLE)節(jié):包含命名項(xiàng)的定義,存放一系列表。包括線型(LTYPE)表、層(LAYER)表、文本字樣(STYLE)表、視(VIEW)表、用戶坐標(biāo)系統(tǒng)(USC)表、視窗配制(VPORT)表、尺寸標(biāo)注式樣(DIMSTYLE)表、應(yīng)用標(biāo)識(shí)(APPID)表。D.
塊(BLOCK)節(jié):存放塊定義的實(shí)體。對(duì)圖形中每個(gè)塊引用,在塊節(jié)中都必需有一個(gè)條目與之對(duì)應(yīng)。E.實(shí)體(ENTITIES)節(jié):存放圖形實(shí)體,其中包括塊插入實(shí)體。DXF圖形文件中的所有圖元(包括點(diǎn)、線、面、插入塊,注記文字等實(shí)體)都將在ENTITIES節(jié)定義。F.實(shí)體(OBJECTS)節(jié):存儲(chǔ)非圖形對(duì)象。G.
預(yù)覽圖像(THUMBNAILIMAGE)節(jié):只有當(dāng)預(yù)覽圖像被保存在DXF文件中時(shí)該節(jié)才存在。編寫(xiě)一個(gè)構(gòu)造完備的DXF文件的程序是比較困難且煩瑣的,因?yàn)楸仨毐3謭D形的一致性,以使AutoCAD能夠接受它,同時(shí)還必須保持信息的完整性。值得慶幸是一個(gè)DXF文件可以只包含以上七個(gè)節(jié)中的若干個(gè)節(jié),而不是全部節(jié)。以上七個(gè)節(jié)中,最重要的是實(shí)體(ENTITIES)節(jié),實(shí)體節(jié)存儲(chǔ)了DXF文件所有的圖形對(duì)象。一個(gè)最簡(jiǎn)單的DXF文件可以只包含實(shí)體(ENTITIES)節(jié),而不需要包含其他任何節(jié)。這樣就大大降低了DXF文件編寫(xiě)的難度。3、Shape文件到DXF文件轉(zhuǎn)化的實(shí)現(xiàn)由于Shape文件是二進(jìn)制文件,且文件格式復(fù)雜,直接使用編程語(yǔ)言讀取Shape文件具有一定的困難,由此作者使用第三方開(kāi)發(fā)組件MapObject提供的對(duì)Shape文件的數(shù)據(jù)訪問(wèn)接口來(lái)讀取Shape文件內(nèi)容,大大降低了Shape文件到DXF文件格式轉(zhuǎn)化的編程工作量。MapObject是目前最優(yōu)秀的GIS二次開(kāi)發(fā)組件之一,他提供了一系列的GIS制圖功能和訪問(wèn)ESRIShapeFiles的數(shù)據(jù)訪問(wèn)接口[1]。利用MapObject對(duì)Shape文件的數(shù)據(jù)訪問(wèn)功能來(lái)提取Shape的圖形信息,具有不丟失圖形信息、數(shù)據(jù)訪問(wèn)簡(jiǎn)單等優(yōu)點(diǎn)。下面是Shape文件類型與DXF圖元類型對(duì)照表:圖1.Shape文件地物類型與DXF文件圖元類型對(duì)照表作者以某市地下管線Shape文件為例,實(shí)現(xiàn)了將管線Shape文件轉(zhuǎn)化為AutoCAD系統(tǒng)DXF文件,并將數(shù)據(jù)轉(zhuǎn)化功能集成到某市地下管線管理信息系統(tǒng)中,很好的解決了地下管線管理系統(tǒng)與AutoCAD制圖系統(tǒng)之間的數(shù)據(jù)格式共享問(wèn)題。轉(zhuǎn)化過(guò)程中沒(méi)有丟失圖形信息。下面以地下管點(diǎn)Shape文件為例,簡(jiǎn)單介紹如何將點(diǎn)圖元寫(xiě)入DXF文件。點(diǎn)狀地物對(duì)應(yīng)DXF文件的點(diǎn)圖元,但是由于Shape文件中點(diǎn)狀地物通常表示地圖上的一個(gè)獨(dú)立地物,如電線桿等,他具有某些特殊的符號(hào),因此往往需要把Shape文件的點(diǎn)狀地物作為一個(gè)塊(Block)插入到DXF文件中,這也是通用的文件格式轉(zhuǎn)換工具所不能做到的。下面是一個(gè)插入圖塊的通用函數(shù):PublicSubInsertBlock(lyrNameAsString,blkNameAsString,XAsDouble,YAsDouble)Print#fnum,0Print#fnum,"INSERT"‘插入圖塊組碼Print#fnum,8Print#fnum,lyrName‘插入圖塊的圖層名Print#fnum,100Print#fnum,"AcDbBlockReference"Print#fnum,2Print#fnum,blkName‘插入的圖塊名Print#fnum,10Print
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年語(yǔ)文考試實(shí)踐性試題及答案解析
- 2025年藥師考試未來(lái)發(fā)展趨勢(shì)探討試題及答案
- 主管護(hù)師考試案例分析技巧試題及答案
- 探討中國(guó)文化的試題及答案匯編
- 執(zhí)業(yè)藥師考試中的理論與實(shí)操問(wèn)題試題及答案
- 中國(guó)文化概論考試準(zhǔn)備指南
- 執(zhí)業(yè)護(hù)士考試案例分享與專業(yè)思維的培養(yǎng)試題及答案
- 2025年主管護(hù)師考試豐富資源試題及答案
- 中國(guó)老年圍術(shù)期麻醉管理指導(dǎo)意見(jiàn)課件
- 制藥公用系統(tǒng)工程 空氣凈化課件
- 2024年湖南省衡陽(yáng)八中教育集團(tuán)直選生數(shù)學(xué)模擬試卷+
- 胸痛規(guī)范化評(píng)估與診斷中國(guó)專家共識(shí)(全文)
- 2024藥店質(zhì)量負(fù)責(zé)人聘用合同范本
- DL∕T 1099-2009 防振錘技術(shù)條件和試驗(yàn)方法
- 2024年春七年級(jí)歷史下冊(cè) 第一單元 隋唐時(shí)期 繁榮與開(kāi)放的時(shí)代 第1課 隋朝的統(tǒng)一與滅亡教案 新人教版
- CJ/T 156-2001 溝槽式管接頭
- 黑龍江省齊齊哈爾市五縣聯(lián)考2023-2024學(xué)年七年級(jí)下學(xué)期期末數(shù)學(xué)試題
- CJJT81-2013 城鎮(zhèn)供熱直埋熱水管道技術(shù)規(guī)程
- 圖集04S206自動(dòng)噴水與水噴霧滅火設(shè)施安裝
- IQC來(lái)料不合格品處理流程管理規(guī)定
- 2023年拍賣師考試真題模擬匯編(共469題)
評(píng)論
0/150
提交評(píng)論