安衛(wèi)
(天津市測(cè)繪院,天津 300380)
基于VBA的兩證合一SHP數(shù)據(jù)制作自動(dòng)化的實(shí)現(xiàn)
安衛(wèi)?
(天津市測(cè)繪院,天津 300380)
在制作兩證合一SHP數(shù)據(jù)的過(guò)程中,基礎(chǔ)數(shù)據(jù)的來(lái)源主要是測(cè)量部門(mén)AutoCAD的DWG數(shù)據(jù),在利用此數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的SHP數(shù)據(jù)時(shí),要采用ArcMap進(jìn)行數(shù)據(jù)的導(dǎo)入導(dǎo)出,之后刪除字段,添加字段,添加屬性數(shù)據(jù),如界址點(diǎn)坐標(biāo),宗地面積等。此過(guò)程尤為麻煩,制作一宗地得花費(fèi)很多時(shí)間,而且可能因?yàn)樘顚?xiě)數(shù)據(jù)太多而導(dǎo)致錯(cuò)誤。本文提出一種基于ArcMap內(nèi)置VBA,利用自定義程序轉(zhuǎn)換文件,把DWG文件轉(zhuǎn)換成SHP的方法,在區(qū)國(guó)土資源分局得到較好的利用。
GIS;DWG;VBA;Arctoolbox;數(shù)據(jù)轉(zhuǎn)換;字段
本文是以測(cè)量部門(mén)施測(cè)的權(quán)屬界線DWG數(shù)據(jù)為基礎(chǔ),根據(jù)天津市兩證合一數(shù)據(jù)建庫(kù)標(biāo)準(zhǔn),將其分類(lèi)轉(zhuǎn)換為界址點(diǎn),界址線,宗地,建筑物等SHP格式數(shù)據(jù)。本文先介紹目前的SHP數(shù)據(jù)的制作方法,利用Arc-Map內(nèi)置VBA程序?qū)崿F(xiàn)兩證合一SHP數(shù)據(jù)制作自動(dòng)化,并賦有關(guān)鍵代碼。
GIS是一個(gè)用于管理、分析和顯示地理信息的系統(tǒng)。ArcMap是ArcGIS Desktop的重要組成部分,Arc-Map的功能相當(dāng)強(qiáng)大,在數(shù)據(jù)編輯方面更加具有優(yōu)勢(shì),因此它是制作SHP數(shù)據(jù)的最佳選擇平臺(tái)。
制作SHP數(shù)據(jù)的第一步是必須有數(shù)據(jù)源,即測(cè)量部門(mén)提供的權(quán)屬界線和建筑物DWG文件。DWG數(shù)據(jù)必須滿(mǎn)足一定的格式要求,需要有點(diǎn)(Point)、封閉多段線(Polyline)以及界址線(界址線的類(lèi)型可以是Line或者Polyline),在轉(zhuǎn)換之前需去掉Z值(當(dāng)然也可以在轉(zhuǎn)換的過(guò)程中去掉)。有了這三個(gè)數(shù)據(jù)且去掉Z值之后,即可開(kāi)始進(jìn)行轉(zhuǎn)換。流程如下:打開(kāi)ArcMap→Add Data,選擇DWG文件下的Point、Polyline、Polygon等要素類(lèi),將其加載到ArcMap中,在新加載進(jìn)來(lái)的要素層上點(diǎn)擊右鍵,選擇Data→Export Data,在出現(xiàn)的對(duì)話(huà)框中,可以對(duì)保存的路徑,文件名進(jìn)行修改,之后點(diǎn)擊OK即轉(zhuǎn)換成SHP。
轉(zhuǎn)換之后的SHP文件,字段很多,不符合天津市地籍中心兩證合一數(shù)據(jù)庫(kù)標(biāo)準(zhǔn),因此需刪除不必要字段,添加符合數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)的字段。具體做法如下:在新生成SHP要素層上點(diǎn)擊右鍵,選擇Open Attribute Table,即可打開(kāi)屬性表,在需要?jiǎng)h除的字段上點(diǎn)擊右鍵,選擇Delete即可刪除字段。添加字段的方法是,在屬性表的狀態(tài)欄選擇Options→Add Field,在出現(xiàn)的對(duì)話(huà)框里即可添加符合數(shù)據(jù)庫(kù)的字段,編輯好之后點(diǎn)擊OK即可,注意不論是刪除字段還是添加字段,要素層都不能處于編輯狀態(tài),否則無(wú)法刪除或添加字段。添加完字段后,對(duì)每個(gè)要素的屬性進(jìn)行賦值操作,比如界址點(diǎn)號(hào)(JZDH),界標(biāo)類(lèi)型(JBLX)的填寫(xiě)等等。在添加界址點(diǎn)號(hào)(JZDH),界標(biāo)類(lèi)型(JBLX)等屬性值時(shí),ArcMap必須處于可編輯狀態(tài)。
填完各記錄的屬性值之后,界址點(diǎn)SHP也就制作完成。由此可見(jiàn)在制作SHP數(shù)據(jù)的過(guò)程中,步驟繁多,添加和刪除字段以及要素屬性的賦值很耗費(fèi)時(shí)間。據(jù)本人的經(jīng)驗(yàn),做10個(gè)點(diǎn)的SHP數(shù)據(jù)就得花費(fèi)3小時(shí)以上,另外還需對(duì)數(shù)據(jù)進(jìn)行檢查。為了減輕這種重復(fù)勞動(dòng),筆者對(duì)ArcMap VBA做了深入研究,通過(guò)編寫(xiě)程序能實(shí)現(xiàn)兩證合一SHP數(shù)據(jù)制作的自動(dòng)化。
2.1 程序設(shè)計(jì)的思想
采用VBA,創(chuàng)建一個(gè)窗體,添加相應(yīng)代碼即可實(shí)現(xiàn)自動(dòng)化處理,窗體如圖1所示。
圖1 程序界面
根據(jù)窗體選擇需要進(jìn)行轉(zhuǎn)化的DWG文件(包含權(quán)屬界線DWG文件與建筑物DWG文件),輸入宗地號(hào)、指界日期,選擇界址線類(lèi)別、界址線位置等信息,點(diǎn)擊相應(yīng)的轉(zhuǎn)換按鈕,即可實(shí)現(xiàn)DWG文件向SHP文件的轉(zhuǎn)換,并自動(dòng)添加字段,自動(dòng)填寫(xiě)好要素屬性數(shù)據(jù)??梢詥为?dú)地轉(zhuǎn)點(diǎn)、線、面或建筑物(其實(shí)建筑物也是面,由于其特殊性,所以另外單獨(dú)進(jìn)行轉(zhuǎn)換),也可點(diǎn)擊“全轉(zhuǎn)”按鈕,一次全部轉(zhuǎn)換完成。此程序還有一個(gè)顯著優(yōu)點(diǎn)就是數(shù)據(jù)源DWG文件只需是一條封閉多段線(Polyline)即可,不用再另外繪點(diǎn)繪線。
2.2 程序流程及代碼說(shuō)明
(1)程序流程
啟動(dòng)ArcMap,打開(kāi)VBA編輯宏的界面,寫(xiě)入代碼,運(yùn)行宏,打開(kāi)相應(yīng)的數(shù)據(jù)源DWG文件,即可實(shí)現(xiàn)SHP數(shù)據(jù)制作的自動(dòng)化。詳細(xì)流程如圖2所示。
圖2 SHP數(shù)據(jù)制作流程
(2)主要程序代碼的說(shuō)明
本程序主要由三部分組成,即創(chuàng)建要素類(lèi)并添加字段,讀入DWG文件生成要素類(lèi),要素類(lèi)間屬性的傳遞及編輯。限于篇幅限制,現(xiàn)在給出部分主要代碼。
①創(chuàng)建SHP要素類(lèi)并添加字段
②讀入DWG文件生成要素類(lèi)
這是本程序難點(diǎn)所在,對(duì)于點(diǎn)線要素類(lèi)的獲取采用如下代碼實(shí)現(xiàn)。
其中InFile為DWG文件的絕對(duì)路徑+"Polygon";outFile為你想輸出的文件絕對(duì)路徑(包含文件名)。由于DWG文件中的封閉多段線本身就含有面要素類(lèi),因此不需要獲取,可以直接引用。
③要素類(lèi)間屬性的傳遞及編輯
(3)程序運(yùn)行的結(jié)果
本程序所添加的屬性字段是根據(jù)天津市兩證合一數(shù)據(jù)建庫(kù)分類(lèi)標(biāo)準(zhǔn)編寫(xiě)的,經(jīng)驗(yàn)證達(dá)到了天津市兩證合一數(shù)據(jù)建庫(kù)的標(biāo)準(zhǔn)。
這種兩證合一SHP數(shù)據(jù)制作自動(dòng)化的方法,利用ArcMap內(nèi)置的VBA程序,對(duì)DWG數(shù)據(jù)進(jìn)行分類(lèi)轉(zhuǎn)換,在這個(gè)過(guò)程中程序員可以按需要調(diào)用ArcToolbox,我們知道ArcToolbox中含有數(shù)百種工具,都可以采用上述語(yǔ)句調(diào)用,程序員用不著去寫(xiě)算法復(fù)雜的空間編輯、分析、轉(zhuǎn)換功能,減輕了程序開(kāi)發(fā)的難度。
[1] 薛偉.MapObject地理信息系統(tǒng)程序設(shè)計(jì)[M].北京:國(guó)防工業(yè)出版社,2004
[2] 王任.用VBA開(kāi)發(fā)AutoCAD應(yīng)用程序[M].北京:人民郵電出版社,1999:97~145
[3] 馮克忠,姜遵鋒,徐楊等.ArcObjects開(kāi)發(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—)男,助理工程師,主要從事地籍測(cè)量工作。