安衛(wèi)
(天津市測繪院,天津 300380)
基于VBA的兩證合一SHP數(shù)據(jù)制作自動化的實現(xiàn)
安衛(wèi)?
(天津市測繪院,天津 300380)
在制作兩證合一SHP數(shù)據(jù)的過程中,基礎(chǔ)數(shù)據(jù)的來源主要是測量部門AutoCAD的DWG數(shù)據(jù),在利用此數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的SHP數(shù)據(jù)時,要采用ArcMap進(jìn)行數(shù)據(jù)的導(dǎo)入導(dǎo)出,之后刪除字段,添加字段,添加屬性數(shù)據(jù),如界址點坐標(biāo),宗地面積等。此過程尤為麻煩,制作一宗地得花費很多時間,而且可能因為填寫數(shù)據(jù)太多而導(dǎo)致錯誤。本文提出一種基于ArcMap內(nèi)置VBA,利用自定義程序轉(zhuǎn)換文件,把DWG文件轉(zhuǎn)換成SHP的方法,在區(qū)國土資源分局得到較好的利用。
GIS;DWG;VBA;Arctoolbox;數(shù)據(jù)轉(zhuǎn)換;字段
本文是以測量部門施測的權(quán)屬界線DWG數(shù)據(jù)為基礎(chǔ),根據(jù)天津市兩證合一數(shù)據(jù)建庫標(biāo)準(zhǔn),將其分類轉(zhuǎn)換為界址點,界址線,宗地,建筑物等SHP格式數(shù)據(jù)。本文先介紹目前的SHP數(shù)據(jù)的制作方法,利用Arc-Map內(nèi)置VBA程序?qū)崿F(xiàn)兩證合一SHP數(shù)據(jù)制作自動化,并賦有關(guān)鍵代碼。
GIS是一個用于管理、分析和顯示地理信息的系統(tǒng)。ArcMap是ArcGIS Desktop的重要組成部分,Arc-Map的功能相當(dāng)強(qiáng)大,在數(shù)據(jù)編輯方面更加具有優(yōu)勢,因此它是制作SHP數(shù)據(jù)的最佳選擇平臺。
制作SHP數(shù)據(jù)的第一步是必須有數(shù)據(jù)源,即測量部門提供的權(quán)屬界線和建筑物DWG文件。DWG數(shù)據(jù)必須滿足一定的格式要求,需要有點(Point)、封閉多段線(Polyline)以及界址線(界址線的類型可以是Line或者Polyline),在轉(zhuǎn)換之前需去掉Z值(當(dāng)然也可以在轉(zhuǎn)換的過程中去掉)。有了這三個數(shù)據(jù)且去掉Z值之后,即可開始進(jìn)行轉(zhuǎn)換。流程如下:打開ArcMap→Add Data,選擇DWG文件下的Point、Polyline、Polygon等要素類,將其加載到ArcMap中,在新加載進(jìn)來的要素層上點擊右鍵,選擇Data→Export Data,在出現(xiàn)的對話框中,可以對保存的路徑,文件名進(jìn)行修改,之后點擊OK即轉(zhuǎn)換成SHP。
轉(zhuǎn)換之后的SHP文件,字段很多,不符合天津市地籍中心兩證合一數(shù)據(jù)庫標(biāo)準(zhǔn),因此需刪除不必要字段,添加符合數(shù)據(jù)庫標(biāo)準(zhǔn)的字段。具體做法如下:在新生成SHP要素層上點擊右鍵,選擇Open Attribute Table,即可打開屬性表,在需要刪除的字段上點擊右鍵,選擇Delete即可刪除字段。添加字段的方法是,在屬性表的狀態(tài)欄選擇Options→Add Field,在出現(xiàn)的對話框里即可添加符合數(shù)據(jù)庫的字段,編輯好之后點擊OK即可,注意不論是刪除字段還是添加字段,要素層都不能處于編輯狀態(tài),否則無法刪除或添加字段。添加完字段后,對每個要素的屬性進(jìn)行賦值操作,比如界址點號(JZDH),界標(biāo)類型(JBLX)的填寫等等。在添加界址點號(JZDH),界標(biāo)類型(JBLX)等屬性值時,ArcMap必須處于可編輯狀態(tài)。
填完各記錄的屬性值之后,界址點SHP也就制作完成。由此可見在制作SHP數(shù)據(jù)的過程中,步驟繁多,添加和刪除字段以及要素屬性的賦值很耗費時間。據(jù)本人的經(jīng)驗,做10個點的SHP數(shù)據(jù)就得花費3小時以上,另外還需對數(shù)據(jù)進(jìn)行檢查。為了減輕這種重復(fù)勞動,筆者對ArcMap VBA做了深入研究,通過編寫程序能實現(xiàn)兩證合一SHP數(shù)據(jù)制作的自動化。
2.1 程序設(shè)計的思想
采用VBA,創(chuàng)建一個窗體,添加相應(yīng)代碼即可實現(xiàn)自動化處理,窗體如圖1所示。
圖1 程序界面
根據(jù)窗體選擇需要進(jìn)行轉(zhuǎn)化的DWG文件(包含權(quán)屬界線DWG文件與建筑物DWG文件),輸入宗地號、指界日期,選擇界址線類別、界址線位置等信息,點擊相應(yīng)的轉(zhuǎn)換按鈕,即可實現(xiàn)DWG文件向SHP文件的轉(zhuǎn)換,并自動添加字段,自動填寫好要素屬性數(shù)據(jù)。可以單獨地轉(zhuǎn)點、線、面或建筑物(其實建筑物也是面,由于其特殊性,所以另外單獨進(jìn)行轉(zhuǎn)換),也可點擊“全轉(zhuǎn)”按鈕,一次全部轉(zhuǎn)換完成。此程序還有一個顯著優(yōu)點就是數(shù)據(jù)源DWG文件只需是一條封閉多段線(Polyline)即可,不用再另外繪點繪線。
2.2 程序流程及代碼說明
(1)程序流程
啟動ArcMap,打開VBA編輯宏的界面,寫入代碼,運行宏,打開相應(yīng)的數(shù)據(jù)源DWG文件,即可實現(xiàn)SHP數(shù)據(jù)制作的自動化。詳細(xì)流程如圖2所示。
圖2 SHP數(shù)據(jù)制作流程
(2)主要程序代碼的說明
本程序主要由三部分組成,即創(chuàng)建要素類并添加字段,讀入DWG文件生成要素類,要素類間屬性的傳遞及編輯。限于篇幅限制,現(xiàn)在給出部分主要代碼。
①創(chuàng)建SHP要素類并添加字段
②讀入DWG文件生成要素類
這是本程序難點所在,對于點線要素類的獲取采用如下代碼實現(xiàn)。
其中InFile為DWG文件的絕對路徑+"Polygon";outFile為你想輸出的文件絕對路徑(包含文件名)。由于DWG文件中的封閉多段線本身就含有面要素類,因此不需要獲取,可以直接引用。
③要素類間屬性的傳遞及編輯
(3)程序運行的結(jié)果
本程序所添加的屬性字段是根據(jù)天津市兩證合一數(shù)據(jù)建庫分類標(biāo)準(zhǔn)編寫的,經(jīng)驗證達(dá)到了天津市兩證合一數(shù)據(jù)建庫的標(biāo)準(zhǔn)。
這種兩證合一SHP數(shù)據(jù)制作自動化的方法,利用ArcMap內(nèi)置的VBA程序,對DWG數(shù)據(jù)進(jìn)行分類轉(zhuǎn)換,在這個過程中程序員可以按需要調(diào)用ArcToolbox,我們知道ArcToolbox中含有數(shù)百種工具,都可以采用上述語句調(diào)用,程序員用不著去寫算法復(fù)雜的空間編輯、分析、轉(zhuǎn)換功能,減輕了程序開發(fā)的難度。
[1] 薛偉.MapObject地理信息系統(tǒng)程序設(shè)計[M].北京:國防工業(yè)出版社,2004
[2] 王任.用VBA開發(fā)AutoCAD應(yīng)用程序[M].北京:人民郵電出版社,1999:97~145
[3] 馮克忠,姜遵鋒,徐楊等.ArcObjects開發(fā)指南(VB篇) [M].北京:電子工業(yè)出版社,2007
The Realization of Automation About the SHP Data of Land and Property Ownership Certificates Based on VBA
An Wei
(Tianjin Institute of Surveying and Mapping,Tianjin 300380,China)
In the production process Of the SHP data of land and property ownership certificates,the source of the data comes from departments of Surveying and Mapping.In the use of this data into standard SHP,you can use ArcMap to import and export the data,and then delete a field,Add a field and add the attribute data,such as the coordinates of the points,area,etc.This process is particularly troublesome in the production,because it costs a lot of time and too many errors may happen.This paper presents a built-in ArcMap based on VBA.By using the self-defined changing documents,we can change the file of DWG to SHP File.It works well in the branch Bureau of Land and Resources of Xiqing.
GIS;DWG;VBA;Arctoolbox;data conversion;field
1672-8262(2011)02-141-03
P209
B
2010—08—07
安衛(wèi)(1984—)男,助理工程師,主要從事地籍測量工作。