安衛(wèi) ,王寶明,王孝華,戈楊,楊國臣
(1.天津市測繪院,天津 300381;2.天津市國土資源和房屋管理局西青區(qū)國土資源分局,天津 300381)
隨著地理信息技術(shù)的飛速發(fā)展,GIS技術(shù)已廣泛地應(yīng)用于眾多領(lǐng)域,為各個相關(guān)行業(yè)部門提供了高效的空間信息處理能力和強大的決策支持服務(wù),利用它可進行分析、評價和預(yù)測。天津市國土資源和房屋管理部門根據(jù)實際需求充分利用GIS技術(shù),開發(fā)出覆蓋全市域的“一張圖”系統(tǒng)。天津“一張圖”,底圖清晰,操作簡單,一目了然。在這張“圖”上,可以完成從土地征收轉(zhuǎn)用到權(quán)屬變更,從地類用途管治到用地審批、從土地供應(yīng)到合同簽署、從土地初始登記到商品房預(yù)售和在建工程抵押轉(zhuǎn)讓、從房地合一證后監(jiān)管到頒發(fā)房地權(quán)屬證書,實現(xiàn)業(yè)務(wù)應(yīng)用系統(tǒng)基礎(chǔ)數(shù)據(jù)的實時更新和統(tǒng)一標準下的信息共享。由此可見GIS技術(shù)已在天津市國土資源和房屋管理部門得到非常好的應(yīng)用。
開發(fā)商最終要拿到兩證(房地產(chǎn)權(quán)證),必須把所購買的地塊及所建造的房屋的點、線、面等圖形信息及屬性信息上傳到天津“一張圖”系統(tǒng),這就需要利用ArcGIS 9.3或AE技術(shù)制作SHP格式數(shù)據(jù)。SHP格式數(shù)據(jù)的來源是測繪部門現(xiàn)場測繪后形成的DWG格式數(shù)據(jù),這就涉及AutoCAD數(shù)據(jù)與ArcGIS數(shù)據(jù)的相互轉(zhuǎn)換問題。而兩證(房地產(chǎn)權(quán)證)上的各種附圖及表格等數(shù)據(jù),利用VBA開發(fā)技術(shù)即可實現(xiàn)。本文主要論述如何利用AE,VB6.0,AutoCAD及Microsoft Office的VBA等技術(shù)在AutoCAD 2004的環(huán)境下開發(fā)出兩證合一地籍測量數(shù)據(jù)制圖系統(tǒng)。
根據(jù)天津市國土資源和房屋管理部門對登記發(fā)證兩證合一地籍測量數(shù)據(jù)的要求,需要制作以下幾部分數(shù)據(jù):地籍封面、界址表、界址點坐標成果、宗地草圖、有比例要求的貼證宗地圖和上“一張圖”的SHP格式數(shù)據(jù)。數(shù)據(jù)的具體樣式如圖1~圖5所示。
圖1 地籍封面與宗地草圖
圖2 宗地圖
圖3 界址表和界址點坐標成果表
圖4 SHP格式圖形數(shù)據(jù)
圖5 SHP格式屬性數(shù)據(jù)(界址點)
界址線,宗地,房屋SHP數(shù)據(jù)的屬性信息和界址點SHP數(shù)據(jù)的屬性信息類似,這里不再顯示。
系統(tǒng)的設(shè)計要實用,穩(wěn)定,快速,同時也要標準化,規(guī)范化。系統(tǒng)的實用就是要能夠滿足用戶的應(yīng)用需求,同時保證系統(tǒng)簡潔明了、層次清晰,用戶操作簡單,易于使用、管理及維護,使非專業(yè)人員也能夠熟練操作;系統(tǒng)的穩(wěn)定就是要求系統(tǒng)運行穩(wěn)定,能捕捉到錯誤并給出相應(yīng)的反映,而且不導(dǎo)致程序異常關(guān)閉,或死機等;系統(tǒng)的快速就是要求程序在運行的時候速度要很快,否則就失去程序自動化的意義了;系統(tǒng)的標準化、規(guī)范化就是要求系統(tǒng)在開發(fā)過程中要嚴格遵循各項國家或地方標準,從而達到數(shù)據(jù)共享的目的。
本系統(tǒng)的設(shè)計完全滿足上述要求,其開發(fā)流程如圖6所示。
圖6 系統(tǒng)結(jié)構(gòu)流程圖
從AutoCAD R14.01版開始,Autodesk在AutoCAD中加入了VBA(Visual Basic for Application),作為AutoCAD的一種二次開發(fā)工具,VBA將AutoCAD和Visual Basic的功能結(jié)合在一起,能夠快速創(chuàng)建出符合用戶要求的程序,大大提高了工作效率。
AutoCAD VBA的開發(fā)使用AutoCAD ActiveX技術(shù),與AutoCAD提供的內(nèi)置的 AutoLISP語言相比,VBA具有一些優(yōu)點。如與Windows互操作性,本系統(tǒng)在AutoCAD VBA開發(fā)過程中操作Microsoft Office的Word和Excel,很簡單就可以把必要的DWG文件信息通過Word文檔或Excel表格輸出,但是采用AutoLISP就很難達到這樣的效果,而且VBA語言相對LISP語言來說,學習起來更簡單,更容易掌握。
ArcGIS Engine是Esri在ArcGIS9版本才開始推出的新產(chǎn)品,它是一套完備的嵌入式GIS組件庫和工具庫,使用ArcGIS Engine開發(fā)的GIS應(yīng)用程序可以脫離ArcGIS Desktop而運行。ArcGIS Engine面向的用戶并不是最終使用者,而是GIS項目程序開發(fā)員。對開發(fā)人員而言,ArcGIS Engine不再是一個終端應(yīng)用,不再包括ArcGIS桌面的用戶界面,它只是一個用于開發(fā)新應(yīng)用程序的二次開發(fā)功能組件包。
開發(fā)人員可以使用ArcGIS Engine將GIS功能嵌入到現(xiàn)有的應(yīng)用程序中,包括Microsoft Office的Word和Excel等產(chǎn)品。ArcGIS Engine為輔助應(yīng)用程序開發(fā)提供了下列ArcGIS控件或可視化組件:MapControl,LicenseControl等。本系統(tǒng)對AE要求不高,僅需要LicenseControl進行授權(quán)及Esri DataSourcesFile Object Li-brary,Esri GeoDatabase Object Library 和 Esri Geometry Object Library三個組件庫。
在VBA編程中,由于VBA代碼容易被破解,因此市面上使用的二次開發(fā)軟件用VBA編寫的并不多。但是,如果將關(guān)鍵的代碼封裝到DLL中,是保護知識產(chǎn)權(quán)的好方法,本系統(tǒng)的絕大部分代碼都被封裝成DLL文件。
創(chuàng)建DLL的辦法如下:
(1)在VB6.0中創(chuàng)建一個ActiveX DLL類,并設(shè)置好名稱;
(2)引用AutoCAD、Micosoft Office及AE的類型庫;
(3)在類中寫下實現(xiàn)某些功能的代碼;
(4)調(diào)試代碼及生成DLL文件;
(5)在AutoCAD VBA環(huán)境引用DLL文件。
本系統(tǒng)的開發(fā)平臺為XP系統(tǒng),電腦需安裝Microsoft Office 2003,AutoCAD 2004,ArcGIS 9.3,ArcGIS Engine Runtime 9.3,VB6.0。
系統(tǒng)是在AutoCAD 2004的環(huán)境下進行二次開發(fā)的,因此需制作工具條。工具條的制作是直接在Auto-CAD 2004的菜單中添加如下類似語句即可:
ID_Ini[_Button(“初始化”,“C:DJ_MappmingICONSmallIcon初始化.bmp”,“C:DJ_MappmingICONLargeIcon初始化.bmp”)]'_Inialize。這段語句是添加“初始化”工具,其他工具可參照此法添加,添加完后生成的工具條如圖7所示。
圖7 兩證合一地籍測量數(shù)據(jù)制作系統(tǒng)界面
(1)界址點、界址線、宗地屬性點的符號化
初始化環(huán)境就是在CAD環(huán)境下自動添加需要的字體樣式、線型樣式及圖層等。初始化完成后需設(shè)置作圖比例尺。界址點,界址線,宗地屬性點符號化的過程中,需按照比例尺對界址點的大小,界址線的寬度等信息作出調(diào)整。符號化必須規(guī)范化、標準化,要滿足天津市國土資源管理部門對圖面的要求。在符號化的同時,程序自動給界址點、界址線、宗地屬性點添加一個默認的擴展屬性?,F(xiàn)在分三個方面來敘述:
①界址線的符號化
界址線符號化時,需要把設(shè)置界址線的線寬,界址線所在的圖層,給界址線添加默認的擴展屬性。關(guān)鍵代碼如下:
②界址點的符號化
先創(chuàng)建好一個符號塊文件,置于系統(tǒng)軟件所在的模板文件夾,之后插入界址點符號塊即可。
③宗地屬性點的符號化
宗地屬性點的符號化,主要就是在宗地界線范圍內(nèi)添加一個點對象,給點對象設(shè)置點樣式,顏色,添加宗地屬性信息。
(2)更改界址點、界址線、宗地屬性點的屬性信息
符號化之后,界址點,界址線,宗地屬性點均有擴展屬性,但是其默認屬性并不能完全滿足用戶需要,這就需要更改其擴展屬性。不論是界址點,界址線,還是宗地,更改其擴展屬性的模式都是一樣的,這里僅以界址點為例來說明。屬性窗體的設(shè)計如圖8所示。
圖8 界址點屬性窗體
實現(xiàn)的過程和代碼如下:
①創(chuàng)建窗體,在窗體內(nèi)放置屬性框
②在屬性框更改界址點的屬性后,需把更改后的屬性寫入界址點
(3)界址點、界址線、宗地注記及圖廓的生成
①注記的生成
對于注記的生成,不論是界址點、界址線還是宗地都是類似的,不同之處僅是放置的位置不同,文字大小不同。文字添加的代碼如下:
其余文字的添加類似。
②圖廓的生成
制作指北針的塊,這個可以參看界址點符號塊的制作方法,這里不再贅述。之后根據(jù)宗地圖比例尺,單位名稱,宗地號、指北針塊等生成宗地圖廓。
之后添加宗地號,圖符號,比例尺等文字即可。
(4)SHP格式數(shù)據(jù)的自動生成
需要上“一張圖”系統(tǒng)的數(shù)據(jù)包含4個,界址點,界址線,宗地,房屋。由于這幾個數(shù)據(jù)的生成比較類似,這里僅以界址點的制作過程為例進行論述。
先引用AutoCAD和ArcGIS的庫,之后程序步驟如下。
①首先需要獲取每一個界址點的擴展屬性,并把其存放在一個二維數(shù)組中,以方便下一步的應(yīng)用。
JZD.GetXData "JZD",xtypeOut,xdataOut‘獲取界址點的擴展屬性
②其次是創(chuàng)建字段生成SHP
其余字段的創(chuàng)建與此類似,之后生成空的SHP文件。
③CAD圖形及屬性數(shù)據(jù)傳遞給SHP格式數(shù)據(jù)。讀取CAD中圖層為“JZD”的“Point”要素層,之后把此要素層的圖形數(shù)據(jù)復(fù)制到新創(chuàng)建的界址點SHP格式數(shù)據(jù)中,然后把存放界址點擴展屬性的數(shù)組中的屬性值添加到界址點SHP格式數(shù)據(jù)相應(yīng)的屬性表中,最后保存SHP文件即完成界址點shp數(shù)據(jù)的制作。代碼如下:
這樣,界址點的SHP格式數(shù)據(jù)就制作完成。界址線,宗地等也按此思路制作即可。
(5)界址表及界址點坐標成果表的生成
在AutoCAD VBA環(huán)境中,為了能生成Excel表格,在編寫程序之前,必須先引用Microsoft Excel 11.0 Object Library對象庫。程序流程如圖9所示。
圖9 生成界址表及坐標成果表的流程圖
程序代碼部分限于篇幅,這里不再贅述,請參看參考文獻[5]。
(6)草圖封面的自動生成
①草圖的生成
草圖的生成可以先制作一個草圖模板,需要時通過插入塊的方式插入模板,把相應(yīng)的文字進行替換即可,方法簡單,這里不再贅述。
②封面的生成
封面的生成和草圖的生成類似,也是先做封面的模板,打開模板,之后也是把相應(yīng)的文字(比如宗地號,圖符號,單位名稱等)進行替換即可。在引用Word庫文件之后,編寫如下代碼:
本系統(tǒng)實現(xiàn)了DWG數(shù)據(jù)與GIS數(shù)據(jù)轉(zhuǎn)換的自動化,實現(xiàn)了各種表格、文檔生成的自動化,也實現(xiàn)了圖面整飾的半自動化,提高了工作的效率。按照常規(guī)方法,做一個有20個界址點的兩證合一地籍測量數(shù)據(jù)需花近兩個小時,而采用本程序之后,只需20分鐘即可。尤其是界址點越多,圖形越復(fù)雜,越能體現(xiàn)系統(tǒng)的優(yōu)越性,而且不易出錯,圖面美觀。本系統(tǒng)在天津市國土資源和房屋管理部門得到較廣泛的應(yīng)用。
[1]胡勝華,何宗宜,陶利佳.AutoCAD與GIS數(shù)據(jù)轉(zhuǎn)換的研究[J]. 測繪通報,2007,12:44~47.
[2]求是科技.Visual Basic 6.0程序設(shè)計與開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2004.
[3]池建.精通ArcGIS地理信息系統(tǒng)[M].北京:清華大學出版社,2011.
[4]王任.用VBA開發(fā)AutoCAD 2000應(yīng)用程序[M].北京:人民郵電出版社,1999.
[5]安衛(wèi),王文旭,宋波.一種界址表和界址點坐標成果表的自動生成方法[J].北京測繪,2011(1):49~51.