唐紅鷹
(中鐵二院工程集團(tuán)有限責(zé)任公司,四川成都 610031)
Design and Implementation of Data Conversion System From CAD to Shape File
TANG Hong-ying
基于AutoCAD平臺的shapefile數(shù)據(jù)生產(chǎn)
唐紅鷹
(中鐵二院工程集團(tuán)有限責(zé)任公司,四川成都610031)
Design and Implementation of Data Conversion System From CAD to Shape File
TANG Hong-ying
摘要設(shè)計并實現(xiàn)一個基于AutoCAD平臺的shapefile數(shù)據(jù)生產(chǎn)軟件。首先設(shè)計一個配置文件,用于存儲實體的屬性字段;然后利用AutoCAD提供的二次開發(fā)接口進(jìn)行批量和交互式屬性錄入,并提供幾何和屬性錯誤的檢查、定位、修改功能;最后結(jié)合開源GDAL庫,實現(xiàn)shapefile數(shù)據(jù)的生成。該軟件直接基于AutoCAD平臺,數(shù)據(jù)生產(chǎn)過程中無信息損失,可降低數(shù)據(jù)制作成本,提高工作效率。軟件可以根據(jù)作業(yè)流程定制,具有較高的靈活性。
關(guān)鍵詞AutoCADshapefile轉(zhuǎn)換開源庫GDAL
目前,測繪領(lǐng)域數(shù)字化制圖后期一般采用AutoCAD軟件或基于其二次開發(fā)的軟件對成果進(jìn)行編輯、處理,制圖成果多以AutoCAD軟件的格式存儲,然后通過數(shù)據(jù)二次加工制作GIS數(shù)據(jù)。主要有兩種方法[1]:一是將制圖數(shù)據(jù)重新數(shù)字化,二是利用特定的軟件將制圖數(shù)據(jù)成果轉(zhuǎn)化成GIS數(shù)據(jù)成果。一般采用第二種方法,即:使用商業(yè)軟件[2-4],或者利用商業(yè)軟件定制開發(fā)功能[5,6]對AutoCAD平臺制作的制圖數(shù)據(jù)進(jìn)行幾何信息轉(zhuǎn)換、編輯,然后再進(jìn)行屬性錄入。這種方法充分利用了AutoCAD平臺幾何信息編輯能力強、商業(yè)軟件屬性信息編輯能力強的特點。但是,著這種方法會增加軟件購買投入。同時,由于商業(yè)軟件并不完全符合各單位對于GIS數(shù)據(jù)生產(chǎn)的工藝流程,制作完成的GIS數(shù)據(jù)如果出現(xiàn)錯誤,需要重新編輯、轉(zhuǎn)換,會造成使用不順暢等問題。
shapefile數(shù)據(jù)是GIS領(lǐng)域中一種重要的數(shù)據(jù)格式,包含幾何信息和屬性信息,由于其數(shù)據(jù)結(jié)構(gòu)公開,能被多種GIS軟件讀取,在空間分析、數(shù)據(jù)入庫等各方面都被廣泛應(yīng)用。設(shè)計并實現(xiàn)了一個shapefile數(shù)據(jù)生產(chǎn)軟件,該軟件以AutoCAD為平臺,利用該平臺提供的開發(fā)接口,實現(xiàn)實體的屬性錄入、拓?fù)錂z查,并結(jié)合開源GDAL庫(Geospatial Data Abstraction Library),將實體的幾何信息和屬性信息寫入到shapefile文件中。該軟件全程都在AutoCAD平臺中完成,功能可按照工藝定制,轉(zhuǎn)換無信息損失,能降低數(shù)據(jù)制作成本,提高工作效率,具有較強的靈活性。
1AutoCAD與shapefile數(shù)據(jù)分析
AutoCAD軟件具有強大的圖形繪制、修改、編輯、打印、輸出等功能,數(shù)字化制圖軟件一般以其為基礎(chǔ)平臺,其數(shù)據(jù)包含多種圖形元素,包括:點、線、注記、填充等基本元素,以及由基本元素構(gòu)成的塊、組合等復(fù)雜的實體。同類元素又具有多種類型,如線元素在AutoCAD的數(shù)據(jù)結(jié)構(gòu)中具有:Polyline、LWPolyline、Polyline2d、Polyline3d、SPline、Line,MLine、Circle、Arc等[7,8]。
AutoCAD的圖形元素具有如下特點:
①一般都是矢量形式,具有幾何信息,即一組或者多組X,Y,Z坐標(biāo)確定空間位置以及邊界、形狀等。
②包含如顏色、線寬、字高、內(nèi)容等屬性。
③包含如拓展字段(XData)等隱性屬性。
④包含圖層,每個圖層可以存儲一類或者多類圖形元素。
shapefile數(shù)據(jù)是ESRI公司公布的一種基于文件方式存儲的GIS數(shù)據(jù),其數(shù)據(jù)結(jié)構(gòu)完全公開,能被多種GIS軟件讀取,可以作為不同GIS數(shù)據(jù)轉(zhuǎn)換的中間格式,在空間分析、數(shù)據(jù)入庫等各方面都被廣泛應(yīng)用。
Shapefile具有如下特點:
①一般由.shp,.dbf和.shx三個文件共同組成,能夠存儲地理實體的幾何信息和屬性信息;
②其圖形元素一般只有點、線、面三種。同類圖形元素亦具有多種類型,如線元素具有Polyline、Polyline ZM等類型;
③圖形元素存儲于圖層上,且每個圖層只能存儲一種類型的圖形元素。
要實現(xiàn)基于AutoCAD平臺生產(chǎn)shapefile數(shù)據(jù),需要將兩種數(shù)據(jù)結(jié)構(gòu)對應(yīng)的幾何及屬性信息進(jìn)行關(guān)聯(lián),兩種數(shù)據(jù)結(jié)構(gòu)對應(yīng)的圖形元素和屬性如表1所示。
表1 AutoCAD數(shù)據(jù)與shapefile數(shù)據(jù)關(guān)聯(lián)
由表1分析可知:
①AutoCAD數(shù)據(jù)中沒有“面”元素,shapefile數(shù)據(jù)中的面元素在AutoCAD數(shù)據(jù)中以閉合的線元素表示。
②shapefile數(shù)據(jù)中沒有“文字”和“塊”元素,都以“點”元素表示。
③兩種類型的數(shù)據(jù)都有“圖層”; AutoCAD數(shù)據(jù)每個圖層中能存放多種類型的元素,shapefile數(shù)據(jù)圖層中只能存放一種類型的元素。
2屬性字段配置文件設(shè)計
為了實現(xiàn)基于AutoCAD平臺的shapefile數(shù)據(jù)生產(chǎn),首要需要解決的問題是基于AutoCAD平臺地理實體的幾何、屬性信息一體化存儲。針對該問題,可以使用XData在AutoCAD中存儲用戶定制的屬性信息,并與幾何實體關(guān)聯(lián)的方法。
為了使軟件具有通用性,設(shè)計了一個屬性字段配置文件,該配置文件定義了地理實體的屬性字段名稱、類型、字段長度和默認(rèn)值等信息,并以拓展標(biāo)記文本格式存儲[9,10]。
文件數(shù)據(jù)結(jié)構(gòu)如下:
<屬性字段配置>
<實體 index=”1”>
<字段 index="1">
字段>
<字段 index="2">
為官一任,造福一方。反之,為官一任,遺禍一方。不同的作為,不同的結(jié)局。造福一方者,英名遠(yuǎn)揚。遺禍一方者,臭名昭著。清廉者,人生完美。貪腐者,身敗名裂。當(dāng)政者應(yīng)當(dāng)引以為戒!
字段>
……
屬性字段>
實體>
<實體 index=”2”>
……
實體>
……
屬性字段配置>
其中,屬性字段配置文件中實體名稱與AutoCAD數(shù)據(jù)中的圖層名稱對應(yīng),可以在屬性字段配置文件中增加、刪除、修改相應(yīng)的實體以及實體的屬性信息。使用AutoCAD進(jìn)行shapefile數(shù)據(jù)生產(chǎn)時,可以利用該配置文件中定義的有關(guān)屬性字段信息,將用戶錄入的屬性信息存入XData中,實現(xiàn)幾何、屬性一體化存儲;在AutoCAD數(shù)據(jù)轉(zhuǎn)換成shapefile數(shù)據(jù)時,亦需要利用該配置文件生成shapefile數(shù)據(jù)中的屬性字段。
為了方便進(jìn)行屬性字段增、刪、改、查,開發(fā)了一個屬性字段編輯器,如圖1所示。
圖1 屬性字段編輯器
3軟件的設(shè)計與實現(xiàn)
AutoCAD軟件提供了強大的二次開發(fā)接口,便于用戶快速訪問其數(shù)據(jù)。開發(fā)的軟件將以功能插件的形式在AutoCAD平臺中運行[7,8]。利用該軟件,可以實現(xiàn)從制圖數(shù)據(jù)到GIS數(shù)據(jù)流程化作業(yè),并充分利用其強大的數(shù)據(jù)編輯、修改能力。
首先利用檢查功能檢查圖形的拓?fù)溴e誤,并進(jìn)行改正;然后利用編輯完成的屬性字段配置文件,對AutoCAD平臺中實體進(jìn)行屬性錄入,錄入的屬性信息以XData的方式與幾何實體關(guān)聯(lián),并提供屬性完整性檢查的功能,能實現(xiàn)定位并高亮顯示檢查結(jié)果;按圖層配置AutoCAD數(shù)據(jù)輸出為shapefile數(shù)據(jù)。通過AutoCAD的接口,分圖層遍歷數(shù)據(jù)中每一個實體對象,獲得其幾何和XData數(shù)據(jù),利用開源GDAL庫,結(jié)合屬性字段配置文件信息,生成shapefile數(shù)據(jù)。整個流程如圖2所示。
圖2 數(shù)據(jù)處理流程
GDAL庫是一個開源的空間數(shù)據(jù)轉(zhuǎn)換庫,支持包括shapefile、mid/mif、TAB等格式數(shù)據(jù)的讀寫;ArcGIS、Global Mapper等商業(yè)GIS軟件對shapefile的讀寫也是基于GDAL核心封裝。利用GDAL庫基于AutoCAD平臺制作shapefile數(shù)據(jù),不僅滿足開發(fā)需求,也可以節(jié)省商業(yè)軟件采購成本。
首先利用屬性字段配置文件導(dǎo)入實體默認(rèn)屬性,如圖3所示。
圖3 導(dǎo)入默認(rèn)屬性
導(dǎo)入默認(rèn)屬性完成后,可以通過交互式的方式對實體進(jìn)行屬性錄入,錄入完成后,屬性信息被寫入到實體的XData中,如圖4所示。
圖4 交互式屬性錄入
屬性錄入后,可以利用屬性錄入完整性檢查功能進(jìn)行檢查,可以將未錄入的實體列表顯示,并能定位、高亮顯示,同時將其屬性信息列表,以便于用戶輸入,如圖5所示。
圖5 屬性錄入完整性檢查
屬性錄入完成無誤后,可以通過輸出設(shè)置,利用開源GDAL庫的相關(guān)功能將AutoCAD數(shù)據(jù)輸出成shapefile數(shù)據(jù),設(shè)置對話框(如圖6所示)。
圖6 AutoCAD數(shù)據(jù)輸出shapefile設(shè)置
4實驗及分析
利用本軟件處理四川某縣地理國情監(jiān)測基礎(chǔ)空間地理數(shù)據(jù),圖7為轉(zhuǎn)換前后的數(shù)據(jù)。
圖7 轉(zhuǎn)換前后的數(shù)據(jù)
將本軟件生產(chǎn)的數(shù)據(jù)與商業(yè)軟件生產(chǎn)的成果進(jìn)行對比,可知:幾何和屬性信息轉(zhuǎn)換正確、無信息丟失,且shapefile數(shù)據(jù)制作與制圖軟件無縫集成,效率高,避免了商業(yè)軟件購買成本高、不能隨需求定制的弊端。
5結(jié)束語
采用外部配置文件的形式定制實體屬性字段,并利用AutoCAD二次開發(fā)技術(shù),在該平臺中錄入實體屬性信息,并關(guān)聯(lián)實體,實現(xiàn)相關(guān)幾何和屬性檢查功能,進(jìn)行錯誤定位、修改,然后直接讀取其數(shù)據(jù)中實體的幾何、屬性信息,結(jié)合GDAL開源庫,實現(xiàn)了基于AutoCAD平臺的shapefile數(shù)據(jù)生產(chǎn)。該方法實現(xiàn)數(shù)據(jù)轉(zhuǎn)換快捷、無損,大幅提高了轉(zhuǎn)換準(zhǔn)確度和效率,開發(fā)成本低,能與本單位生產(chǎn)工藝緊密結(jié)合,在測繪數(shù)據(jù)處理與GIS 建庫等相關(guān)項目中具有廣泛的應(yīng)用前途與推廣價值。
參考文獻(xiàn)
[1]Bennett D A. A framework for the integration of geographical information systems and modelbase management[J]. International Journal of Geographical Information Science, 1997,11(4):337-357
[2]樊伊君.CASS軟件中DWG文件轉(zhuǎn)成SHP文件的方法[J].中國水運,2010,10(9)
[3]時綠艷,馮國慶.基于FME實現(xiàn)AutoCAD dwg數(shù)據(jù)向GIS shape數(shù)據(jù)轉(zhuǎn)換的研究[J].2011(5)
[4]高宏兵,李鳳斌,王進(jìn),等.基于VBA的SCS數(shù)據(jù)分類轉(zhuǎn)換為Shape文件[J].現(xiàn)代測繪,2007,30(4):37-39
[5]李勇平.DWG到SHP數(shù)據(jù)的一種實用轉(zhuǎn)換方法[J].國土資源信息化,2010(3):29-32
[6]任學(xué)申,張月香.基于ArcEngine的CAD數(shù)據(jù)與ArcGIS數(shù)據(jù)互換[J].鐵道勘察,2014(5):8-11
[7]宋威,王正瓊,趙永亮,等.使用C#語言進(jìn)行AutoCAD 開發(fā)學(xué)習(xí)初探[J].測繪與空間地理信息,2010,33(4):225-227
[8]李世國.AutoCAD高級開發(fā)技術(shù):ARX編程及應(yīng)用[M].北京:機械工業(yè)出版社,1999
[9]林春峰,黃華平,閔世平.基于AutoCAD平臺的線路橫斷面線提取系統(tǒng)的設(shè)計與實現(xiàn)[J].鐵道勘察,2013(4):6-9
[10]楊鋒,程昂,林春峰.基于ObjectArx的地形圖數(shù)據(jù)標(biāo)準(zhǔn)統(tǒng)一軟件的設(shè)計與實現(xiàn)[J].鐵道勘察,2014(5):5-7
中圖分類號:P209; P231.5
文獻(xiàn)標(biāo)識碼:B
文章編號:1672-7479(2015)01-0032-04
作者簡介:唐紅鷹(1965—),女,1987年畢業(yè)于西南交通大學(xué)鐵道航空勘測專業(yè),工程師。
收稿日期:2014-12-29