武世虎
(山西省煤炭地質(zhì)115勘查院測(cè)繪技術(shù)中心,山西大同037003)
基于C#.NET的DWG到ShapeFile格式轉(zhuǎn)換程序?qū)崿F(xiàn)
武世虎
(山西省煤炭地質(zhì)115勘查院測(cè)繪技術(shù)中心,山西大同037003)
測(cè)量外業(yè)采集數(shù)據(jù)成圖后多為DWG格式,而建立GIS系統(tǒng)入庫(kù)時(shí)的數(shù)據(jù)格式大多為Shapefile格式,存在數(shù)據(jù)采集格式到數(shù)據(jù)成果提交格式不一致的問題。使用C#編程語(yǔ)言開發(fā)DWG數(shù)據(jù)轉(zhuǎn)ArcGIS數(shù)據(jù)程序,解決這一問題。
DWG;Shapefile;格式轉(zhuǎn)換;C#;ArcGIS Engine
DWG格式是Autodesk公司計(jì)算機(jī)輔助設(shè)計(jì)軟件AutoCAD保存設(shè)計(jì)數(shù)據(jù)所用的一種專有文件格式,是制圖繪圖行業(yè)的事實(shí)工業(yè)標(biāo)準(zhǔn)[1]。Shapefile是Esri公司開發(fā)的空間數(shù)據(jù)開放格式,其已經(jīng)成為了地理信息軟件界的一個(gè)開放標(biāo)準(zhǔn),成為一個(gè)非常重要的交換數(shù)據(jù)格式,基本上所有的GIS軟件都支持Shapefile的讀寫。
目前,測(cè)量外業(yè)采集數(shù)據(jù)成圖后多采用DWG格式存儲(chǔ)的,這種格式缺乏對(duì)空間數(shù)據(jù)信息的描述和分析能力,通常只能作為GIS空間信息數(shù)據(jù)庫(kù)入庫(kù)時(shí)的基礎(chǔ)數(shù)據(jù)源。為充分利用已有的數(shù)據(jù)資源,就必須有一個(gè)切實(shí)可行的處理方法,將已有的AutoCAD數(shù)字地形圖數(shù)據(jù)轉(zhuǎn)換為適用的GIS數(shù)據(jù),以便更高效地建立城市基礎(chǔ)地理信息數(shù)據(jù)庫(kù)[2]。
從DWG格式到ShapeFile格式的轉(zhuǎn)換主要有兩種策略:
(1)非開發(fā)策略。如用ArcGIS軟件的ArcToolbox工具箱中ConversionTools和Data Interoperability Tools數(shù)據(jù)格式轉(zhuǎn)換工具,通常也僅僅是達(dá)到顯示圖形目的,但對(duì)GIS建庫(kù)來說,完整的GIS數(shù)據(jù)應(yīng)該包括圖形幾何要素和關(guān)聯(lián)屬性數(shù)據(jù)。這種策略操作步驟復(fù)雜繁瑣,還存在屬性數(shù)據(jù)轉(zhuǎn)換不完整等問題。
(2)開發(fā)策略。選擇恰當(dāng)?shù)木幊陶Z(yǔ)言,使用編程開發(fā)方式,可以有效地避免上述問題。這種策略還有一個(gè)明顯的優(yōu)勢(shì)就是不用單純?yōu)榱藢?shí)現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換而費(fèi)時(shí)費(fèi)力安裝ArcGIS軟件。
ArcGIS Engine是一組完備的并且打包的嵌入式GIS組件庫(kù)和工具庫(kù),可用于構(gòu)建自定義GIS和制圖應(yīng)用軟件。由兩個(gè)產(chǎn)品組成:構(gòu)建軟件所用的開發(fā)工具包以及使已完成的應(yīng)用程序能夠運(yùn)行的可再發(fā)布的運(yùn)行時(shí)環(huán)境Runtime[3]。
C#是一種簡(jiǎn)潔的、類型安全的面向?qū)ο笳Z(yǔ)言,它能使開發(fā)者構(gòu)建很多在.NET Framework上運(yùn)行的安全健壯的應(yīng)用程序。
編寫代碼實(shí)現(xiàn)將DWG轉(zhuǎn)換成SHP分成讀寫兩個(gè)步驟,先讀DWG格式再寫SHP格式。筆者選擇采用AE和C#2012進(jìn)行組件式開發(fā),圖形和屬性分別轉(zhuǎn)換,圖形分成Point,Polyline,Polygon,Annotation轉(zhuǎn)換寫到*.shp文件,屬性轉(zhuǎn)換寫到*.dbf文件,再將圖形數(shù)據(jù)和屬性數(shù)據(jù)之間由索引文件(*.shx)關(guān)聯(lián)起來,實(shí)現(xiàn)DWG到SHP的格式轉(zhuǎn)換。
程序流程圖,見圖1。
圖1 流程圖
該程序在農(nóng)村宅基地測(cè)繪項(xiàng)目中得到了應(yīng)用,并對(duì)比了兩種策略轉(zhuǎn)換數(shù)成果,證明了這種編程轉(zhuǎn)換技術(shù)的正確性和可行性,相對(duì)于第一種策略需要安裝大型ArcGIS軟件才能實(shí)現(xiàn)而言,第二種策略確實(shí)操作簡(jiǎn)單方便,提高了作業(yè)人員的工作效率。
通過C#+ArcGIS Engine組件式開發(fā)方式,實(shí)現(xiàn)了DWG到SHP數(shù)據(jù)格式轉(zhuǎn)換程序設(shè)計(jì),并且圖形數(shù)據(jù)和屬性數(shù)據(jù)可分層選擇轉(zhuǎn)換,能夠靈活定制SHP的屬性字段,有使用推廣價(jià)值。
[1]肖鋒,呂寶奇,林蒙恩.DWG到SHP格式轉(zhuǎn)換技術(shù)的研究與實(shí)現(xiàn)[J].測(cè)繪與空間地理信息,2013(9):87-89.
[2]陳能,施蓓琦.AutoCAD地形圖數(shù)據(jù)轉(zhuǎn)換為GIS空間數(shù)據(jù)的技術(shù)研究與應(yīng)用[J].測(cè)繪通報(bào),2005(8):11-14,34.
[3]鄒建成,孫國(guó)平.基于ArcGIS Engine與C#下的城鎮(zhèn)地籍管理信息系統(tǒng)的研究與實(shí)現(xiàn)[J].城市勘測(cè),2009(4):29-31.
[4]文學(xué)東,鐘文軍,祝方雄,等.基于Geodatabase的CAD到ARCGIS數(shù)據(jù)入庫(kù)研究[J].測(cè)繪科學(xué),2006,31(6):100-102.
[5]宋偉東,符韶華.DLG到GIS的數(shù)據(jù)轉(zhuǎn)換方法研究[J].測(cè)繪通報(bào),2004(2):54-56.
Conversion from the DWG to ShapeFile Program Realization Based On C#.NET
WU Shi-hu
(Surveying and Shanxi Coal Geological Exploration Institute,Datong Shanxi,037003)
We use DWG Format in most surveying and mapping data collection in field work,but establish the GIS database with shapefile format.Inconsistencies exist between the two.It is to solve this problem by programming
DWG;shapefile;format conversion;C#;ArcGIS Engine
P208
A
1674-0874(2016)01-0073-02
2015-09-30
武世虎(1986-),男,山西孝義人,助理工程師,研究方向:工程測(cè)量、沉降觀測(cè)、不動(dòng)產(chǎn)測(cè)繪。
〔責(zé)任編輯 王東〕