賀衛中,束 平,劉 軍
(1.常州市土地勘測中心,江蘇常州213001;2.常州市測繪院,江蘇常州213002)
AutoCAD作為一個易操作平臺,已被廣泛的應用到地理信息系統(GIS)前端的數據采集中,我國現有的大比例尺數字化地形圖(1∶500、1∶1000、1∶2000)的采集制圖軟件大部分選擇了AutoCAD作為平臺工具進行二次開發應用[1,7]。AutoCAD 的圖形文件是以圖元為單位記錄數據的,一個圖形通常只存儲圖元的幾何數據和幾何特征。同時 Auto-CAD還為用戶提供了擴展對象數據(Xdata),用戶可以通過對AutoCAD對象擴展編碼和其他文字、數字等擴展屬性項,將空間數據和屬性項關聯保存到DWG文件中。通過數據轉換程序,能夠將圖形數據和擴展屬性數據無丟失的轉換到通用商業GIS數據庫中[2]。但由于在DWG數據中圖形實體無統一標識碼,因此會導致數據轉換更新后GIS數據庫要素標識碼不一致,將不利于GIS的數據管理與應用。
為了能在GIS中方便地對地理要素進行唯一檢索、定位查詢及更有效的管理和操作各地理要素,以及實現空間矢量數據的屬性與空間幾何圖形數據的對應,需要賦予每個地理要素唯一的標識碼作為它在整個地理要素集合中的識別標志,這種方式可以使GIS用戶在使用該數據時,能夠將該標識碼作為用戶專題屬性數據掛接的關鍵字[5]。
因此,就需要在數據采集時對地理要素進行統一編碼。為科學規范地對AutoCAD基礎地理信息數據庫進行要素編碼,本文參照我國居民身份證編碼的方式,提出了一種在AutoCAD中要素編碼方法——身份證法。
AutoCAD實體對象的身份證編碼與我國公民的身份證號碼的編制相似,其特點是唯一性、確定性。對于一幅地形圖、地籍圖而言,它的圖幅號是唯一的,對于街坊圖的圖號也是唯一的,下面按地形圖與地籍圖的分幅圖舉例說明。
AutoCAD實體對象的身份證編碼層次由5層20位阿拉伯數字表示。其中,第1層為省、自治區、直轄市行政代碼2位;第2層為地級市行政編碼2位;第3層為區級行政代碼2位;第4層為地形地籍圖圖幅號9位,位數不夠的前面補“0”;第5層為圖幅中AutoCAD的每個實體流水號5位,最大不超過“99999”,位數不夠前面補“0”。AutoCAD圖形對象身份證編碼結構如圖1所示。

圖1 圖形對象身份證編碼結構
根據本文實體對象的身份證編碼,可以通過基于AutoCAD二次軟件開發實現對實體對象的身份證賦值,并存儲在對象的附加屬性XDATA中。過程如下:首先,對已經通過質量檢查的地形地籍圖按結合表儲存文件,儲存文件名為合乎規定的數值;其次,對實體的附加擴展屬性MapObjectID添加2個字段值“MapID”和“IDTime”,即“身份證號”和“發證時間”。其中,身份證號按編碼規則編號,發證時間讀取計算機系統時間。如圖2所示,該AutoCAD圖形對象身份證號為3204100124901104892,發證時間為20110322.1642,即 2011年 3月 22日 16點42分。

圖2 實體的附加擴展屬性MapObjectID
初始編碼以圖幅為單位,對圖形對象編碼進行程序流程圖如圖3所示。

圖3 AutoCAD實體身份證初次編碼流程圖
城市大比例尺地形地籍圖更新是測繪單位的日常工作,以筆者所在單位為例每天大約需要更新20~50幅1∶1000的地籍圖,更新頻率較快。本文采取將AutoCAD的DWG數據文件按二進制的方式將其存放在數據庫中,當需要更新數據時,通過數據庫管理系統下載原數據,同時鎖定已下載圖幅。外業修補測結束后,進行質檢并按地形地籍圖結合表分幅,然后通過內業檢查,檢查最后一步就是對更新數據進行編碼處理,檢測沒有發生任何變化的對象保持MapID不變,對新增對象則進行編碼,最后上傳數據庫。數據更新編碼流程圖如圖4所示。
在地形地籍圖數據更新時,勢必會碰到對原圖形數據編輯的問題,本文將原圖編輯歸類為4種類型:刪除對象;增加對象;修改對象;修改擴展屬性。4種類型編碼處理過程如下:
1)對象刪除,MapID和IDTime也隨之刪除。該身份證編碼自然死亡,不再分配給其他對象。假如刪除的對象是編號最大的一個實體,更新數據后新增第一個對象的編碼就是刪除的這個對象。這就是增加IDTime字段的原因,當在數據轉換到Arc-GIS入庫時,只有當MapID和IDTime字段都相同時才認為對象沒有變化。當刪除的對象是編號最大的n個實體時,處理方式相同。

圖4 修補測更新數據編碼流程
2)增加對象,構建ObjectAppend數據庫監視器,新增對象不帶MapID,如果用拷貝(陣列、鏡像、打碎等)原圖對象的方式增加對象,將新增對象置入監視器,構建命令監視器在執行 commandended、commandcancelled、lispEnded、lispCancelled 時觸發清除MapObjectID擴展屬性。在圖幅通過質檢后按更新數據編碼方式對新增對象編碼。
3)修改對象,修改了對象坐標或者修改了文字內容時,構建 ObjectModify數據庫監視器,當Auto-CAD 執行 copy、move、break、ddedit、pedit、trim、mirror、offset、array、rotate、scale、stretch、lengthen、extend、chamfer、fillet等命令編輯對象,將編輯的對象置入監視器,構建命令監視器在執行 command ended、command can celled、lisp Ended、lisp Cancel led 時觸發清除對象MapObjectID擴展屬性。在圖幅通過質檢后按更新數據編碼方式對修改對象編碼。
4)修改擴展屬性,通過編制VBA程序解決,假如修改了對象的屬性數據,如圖5所示。如果修改了房屋的樓層屬性,程序直接刪除MapObjectID擴展屬性,數據采集日期變為當前日期,作業員變為當前用戶。在圖幅通過質檢后按更新數據編碼方式對該對象重新編碼。

圖5 修改了房屋的樓層屬性
常規大比例尺地形地籍圖數據轉換和更新基本都是以圖幅或固定區域為單元進行,即刪除Arc-GIS庫中本幅圖的全部數據,將要更新的AutoCAD數據轉換倒入ArcGIS庫中,這種以圖幅為最小單位更新的方式效率較低。通過對AutoCAD圖形對象身份證編碼,構建面向對象的圖幅數據更新,在AutoCAD數據到ArcGIS數據轉換過程中,只需比較更新圖幅AutoCAD數據與ArcGIS數據中MapID和IDTime的差異,如果MapID和IDTime都一樣判斷為對象未變化,不需要更新。比較差異MapID和IDTime即可實現只更新變化的數據,同時保存歷史數據。這樣不僅提高了更新效率,同時大大減小了歷史數據庫的數據量。
地形地籍圖對象疊加了身份證編碼后,主要的目的在實現數據的共享和互換。
1)獨立符號,不存在接邊問題,用戶單位增加的屬性數據可以通過MapID進行關聯直接實現數據共享和互換。
2)線對象和面對象,假如要進行接邊處理,選取IDTime最新的MapID作為對象的MapID和IDTime,其余接邊對象的MapID和IDTime放在元數據庫中備查。筆者單位在使用ArcGIS數據時保存兩個數據庫,一個是按圖幅存放不進行接邊處理;另一個是對線、面進行接邊處理的數據庫。這樣在對線、面進行接邊處理時,只要檢查MapID和IDTime一致即可判定對象是否需要更新。
3)如果在接邊后的數據上疊加其他信息時,如房產部門在接邊后的房屋屬性中增加了房屋其他信息,通過MapID關聯和IDTime確認就可將增加的房屋的信息反填到基礎地理數據中,實現數據共享和互換。
筆者單位參加了“常州市應急警用地理信息系統”建設,該項目獲2009年度中國地理信息優質工程金獎,在該項目中筆者負責常州市基礎地理信息數據的生產加工,在數據生產加工過程中采用Auto-CAD圖形對象身份證法對地理要素進行統一編碼。基礎地理數據提供給公安局后,公安局采集了全市區約3萬個城市主干道報警路燈編號,并添加到路燈屬性數據中。在與公安數據交換中,通過MapID和IDTime關聯實現了公安報警路燈編號對基礎地理數據信息的擴展(如圖6所示),目前該數據已經提供給120急救中心,用于急救定位。通過這種方式與其他數據使用單位進行的數據共享與交換,不僅豐富了現有基礎地理信息數據,提高了數據質量,還擴展了數據使用范圍。

圖6 通過MapID與公安數據交換后的路燈數據
綜上所述,通過對AutoCAD大比例尺地形數據進行身份證編碼的研究和實踐,實現了在AutoCAD中對圖形實體的身份證編碼,AutoCAD數據庫到GIS數據庫轉換中實體編碼的一致性。同時介紹了AutoCAD身份證編碼體系在數據更新、數據共享和交換實踐中的應用經驗。實踐證明,該方法提高了數據更新效率,解決了數據共享中數據交換問題,豐富了基礎地理信息數據。
[1]張雪松,張友安,鄧敏.AutoCAD環境中組織GIS數據的方法[J].測繪通報,2003(11):45-48.
[2]曾憲珪,徐昌榮.基于AutoCAD的數字地形圖屬性數據組織方案[J].測繪通報,2005(2):200-31.
[3]文學東,鐘文軍,祝方雄,等.基于Geodatabase的CAD到ArcGIS數據入庫研究[J],測繪科學,2006,31(6):100-102.
[4]何建邦,李新通.對地理信息分類編碼的認識與思考[J].地理學與國土研究,2002,18(3):1-7.
[5]羅曉燕,馮學兵.北京市基礎地理信息DLG數據庫要素標識碼編碼標準的研究[J].北京測繪,2009(1):5-8.
[6]鄒時林,謝剛生,李大軍.地理要素編碼在GIS數據轉換中的應用[J].測繪通報,2007(5):22-25.
[7]宋偉東,符韶華.AutoCAD地形圖數據轉換為GIS空間數據的技術研究與應用[J].測繪通報,2005(8):11-14.