武世虎
(山西省煤炭地質115勘查院測繪技術中心,山西大同037003)
基于C#.NET的DWG到ShapeFile格式轉換程序實現
武世虎
(山西省煤炭地質115勘查院測繪技術中心,山西大同037003)
測量外業采集數據成圖后多為DWG格式,而建立GIS系統入庫時的數據格式大多為Shapefile格式,存在數據采集格式到數據成果提交格式不一致的問題。使用C#編程語言開發DWG數據轉ArcGIS數據程序,解決這一問題。
DWG;Shapefile;格式轉換;C#;ArcGIS Engine
DWG格式是Autodesk公司計算機輔助設計軟件AutoCAD保存設計數據所用的一種專有文件格式,是制圖繪圖行業的事實工業標準[1]。Shapefile是Esri公司開發的空間數據開放格式,其已經成為了地理信息軟件界的一個開放標準,成為一個非常重要的交換數據格式,基本上所有的GIS軟件都支持Shapefile的讀寫。
目前,測量外業采集數據成圖后多采用DWG格式存儲的,這種格式缺乏對空間數據信息的描述和分析能力,通常只能作為GIS空間信息數據庫入庫時的基礎數據源。為充分利用已有的數據資源,就必須有一個切實可行的處理方法,將已有的AutoCAD數字地形圖數據轉換為適用的GIS數據,以便更高效地建立城市基礎地理信息數據庫[2]。
從DWG格式到ShapeFile格式的轉換主要有兩種策略:
(1)非開發策略。如用ArcGIS軟件的ArcToolbox工具箱中ConversionTools和Data Interoperability Tools數據格式轉換工具,通常也僅僅是達到顯示圖形目的,但對GIS建庫來說,完整的GIS數據應該包括圖形幾何要素和關聯屬性數據。這種策略操作步驟復雜繁瑣,還存在屬性數據轉換不完整等問題。
(2)開發策略。選擇恰當的編程語言,使用編程開發方式,可以有效地避免上述問題。這種策略還有一個明顯的優勢就是不用單純為了實現數據格式的轉換而費時費力安裝ArcGIS軟件。
ArcGIS Engine是一組完備的并且打包的嵌入式GIS組件庫和工具庫,可用于構建自定義GIS和制圖應用軟件。由兩個產品組成:構建軟件所用的開發工具包以及使已完成的應用程序能夠運行的可再發布的運行時環境Runtime[3]。
C#是一種簡潔的、類型安全的面向對象語言,它能使開發者構建很多在.NET Framework上運行的安全健壯的應用程序。
編寫代碼實現將DWG轉換成SHP分成讀寫兩個步驟,先讀DWG格式再寫SHP格式。筆者選擇采用AE和C#2012進行組件式開發,圖形和屬性分別轉換,圖形分成Point,Polyline,Polygon,Annotation轉換寫到*.shp文件,屬性轉換寫到*.dbf文件,再將圖形數據和屬性數據之間由索引文件(*.shx)關聯起來,實現DWG到SHP的格式轉換。
程序流程圖,見圖1。


圖1 流程圖



該程序在農村宅基地測繪項目中得到了應用,并對比了兩種策略轉換數成果,證明了這種編程轉換技術的正確性和可行性,相對于第一種策略需要安裝大型ArcGIS軟件才能實現而言,第二種策略確實操作簡單方便,提高了作業人員的工作效率。
通過C#+ArcGIS Engine組件式開發方式,實現了DWG到SHP數據格式轉換程序設計,并且圖形數據和屬性數據可分層選擇轉換,能夠靈活定制SHP的屬性字段,有使用推廣價值。
[1]肖鋒,呂寶奇,林蒙恩.DWG到SHP格式轉換技術的研究與實現[J].測繪與空間地理信息,2013(9):87-89.
[2]陳能,施蓓琦.AutoCAD地形圖數據轉換為GIS空間數據的技術研究與應用[J].測繪通報,2005(8):11-14,34.
[3]鄒建成,孫國平.基于ArcGIS Engine與C#下的城鎮地籍管理信息系統的研究與實現[J].城市勘測,2009(4):29-31.
[4]文學東,鐘文軍,祝方雄,等.基于Geodatabase的CAD到ARCGIS數據入庫研究[J].測繪科學,2006,31(6):100-102.
[5]宋偉東,符韶華.DLG到GIS的數據轉換方法研究[J].測繪通報,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-),男,山西孝義人,助理工程師,研究方向:工程測量、沉降觀測、不動產測繪。
〔責任編輯 王東〕