劉仁峰,吳志春
(湖南省第三測繪院,湖南 長沙 410007)
LIU Renfeng,WU Zhichun
AutoCAD平臺下DLG建庫的關鍵技術研究
劉仁峰,吳志春
(湖南省第三測繪院,湖南 長沙 410007)
Research on the Key Technique for Database of DLG Topographic Maps Based on AutoCAD Platform
LIU Renfeng,WU Zhichun
摘要:為了解決數字城市大比例尺地形圖數據建庫的技術問題,介紹了AutoCAD平臺下DLG建庫數據處理的主要內容,對建庫數據處理的關鍵技術進行了研究;通過ObjectARX的二次開發實現了在AutoCAD平臺下完成DLG建庫的數據處理。通過生產實際應用發現,該技術方案大大提高了數據入庫的工作效率,為數字城市建設提供了強有力的技術保障。
引文格式: 劉仁峰,吳志春. AutoCAD平臺下DLG建庫的關鍵技術研究[J].測繪通報,2015(9):113-116.DOI:10.13474/j.cnki.11-2246.2015.0294
關鍵詞:AutoCAD;DLG建庫;數據處理;拓撲構建;ObjectARX
中圖分類號:P208
文獻標識碼:B
文章編號:0494-0911(2015)09-0113-04
收稿日期:2015-06-03
作者簡介:劉仁峰(1978—),男,高級工程師,主要從事航空攝影測量的研究工作。E-mail:173406808@qq.com
通信作者:吳志春
一、引言
為了滿足數字城市建設的需要,我國在信息領域進行了一系列的建設,并相繼建成了一批城市級的數據庫。1∶500、1∶1000、1∶2000等大比例尺DLG主要用于小范圍內精確研究、評價地形,為數字城市的開展提供了一定的保障。因此,數字城市的建設涉及1∶500、1∶1000、1∶2000地形圖數據加工與入庫等工作內容。數據處理內容包括數據圖形的處理、數據屬性的編輯、數據文件類型的轉換、坐標系統轉換等工作。為了減少數據處理人員的工作量,提高工作效率,本文設計并實現了基于AutoCAD平臺的DLG建庫數據處理流程,為保證數據質量提供了技術保障,規范了建庫數據處理工作流程。
二、建庫數據處理主要內容
建庫數據處理的主要內容包括圖形數據整理、屬性數據加工、文件格式轉換、坐標系統轉換4個方面。
根據《基礎地理信息要素分類與代碼》(GB/T 13923—2006)中的規定,基礎地理信息要素一般分為定位基礎、水系、居民地及設施、交通、管線、境界與政區、地貌、植被與土質8個大類。進行分層時,在符合國家標準規定的前提下,要充分考慮項目的需要,對其他行業的數據可自定義添加專題圖層;同時也需要考慮GIS數據的特點對點、線、面進行分層處理。
在AutoCAD數據中,點狀地物主要以塊對象表示。處理時主要提取塊狀地物的定位點,不要打散塊。對于有方向的點狀地物如水閘,需檢查其方向是否與原始數據保持一致。
在處理線狀地物時,雙線地物需要兩邊分開單獨處理;復雜線狀符號、部分地物(如道路、鐵路等)需要提取中心線;帶有方向指示的線狀地物(如陡坎、斜坡)需注意地物的方向。
在原始數據中,面狀地物多用填充對象來表示(如突出房屋),也有一些面狀地物用說明文字注記來標識(如塘),在入庫處理時需構建拓撲面。有些面域需要用Label點來標注,如房屋里的天井;又如一個環形房屋,四周是5層,中心部分是6層,這種情況往往只能通過Label點才能合理表示。
在AutoCAD數據中,注記往往是分隔開的文字,入庫處理時需要把這些注記合并起來,方便轉成數據庫支持數據格式。原始數據中的居民地、著名景點、大型廠礦企業名稱是注記提取的重點。
參照國標《基礎地理信息要素分類與代碼》(GB/T 13923—2006)規定,分類代碼的處理是很重要的一項工作內容,所有的要素都要通過要素代碼來區分(如210100表示常年河,420101表示已建成國道等)。在實際情況中,很多原始數據的分類編碼是CASS的編碼,這就需要進行編碼的轉換,將其轉換為《基礎地理信息要素分類與代碼》(GB/T 13923—2006)的編碼要求。
除了分類代碼之外,根據項目的需求,對要素還需要采集一些附帶的擴展屬性,表1是居民地屬性的示意結構表。

表1 居民地屬性數據結構
原始數據中有些數據具有屬性,如CASS中的房屋有屬性結構與樓層等屬性內容,但有時屬性值與圖面上的注記內容不一致,這種情況就需要提取文字注記中的信息附加到要素屬性中。
Esri公司的Shapefile文件是一種描述空間數據幾何和屬性特征的非拓撲實體矢量數據結構的格式,是一種開放的空間數據格式。目前,該文件格式已成為地理信息軟件界的一個開放標準,Shapefile也是一種重要的交換格式,因此DLG建庫數據處理的成果一般也采用Shapefile文件格式。
2000國家大地坐標系于2008年正式啟用,但是目前由于很多測繪資料都是1980西安坐標系、1954北京坐標系或地方獨立坐標系下的成果,因此需要將其進行坐標轉換。
利用均勻分布在測區的多對控制點,采用平面四參數模型(平移、縮放、旋轉),利用最小二乘法求得殘差最小的一組參數。
三、建庫數據處理關鍵技術
ObjectARX是Autodesk公司針對AutoCAD平臺上的二次開發而推出的一個開發軟件包,它提供了以C++為基礎的面向對象的開發環境及應用程序接口,能真正快速地訪問AutoCAD圖形數據庫。與以往的AutuCAD二次開發工具AutoLISP和ADS不同,ObjectARX應用程序是一個動態鏈接庫(DLL),共享AutoCAD的地址空間,對AutoCAD進行直接函數調用。因此,使用ARX編程的函數的執行速度得以大大提高。ARX類庫采用了標準的C++類庫的封裝形式,也大大提高了程序員編程的可靠度和效率。
本文涉及的建庫數據處理關鍵技術,均采用ObjectARX在AutoCAD平臺下進行二次開發予以實現。
點多邊形位置關系是指:判斷一個點與多邊形的位置關系(在內部、在線上、在外部)。常用的檢驗方法有兩種:夾角和檢驗法、交點數檢驗法(射線法)。由于計算量小,射線法在圖形算法求點多邊形位置關系更為常用。
射線法如圖1所示,由點P向任意方向作一條射線,然后求出射線與多邊形相交而得到的交點數,如果交點數為偶數(包括0),則說明點P必在多邊形之外,如圖1(a)所示;如果交點為奇數,則說明點P必在多邊形之內,如1(b)所示。

圖1 射線法
圖形布爾運算是指對平面上的兩個圖形進行幾何運算以得到新的圖形,這種幾何運算是以圖形為運算對象。圖形布爾運算包括兩個圖形的交、并、差等運算,具體算法如下:
1) 計算交點。
2) 根據交點將多邊形分成幾部分,然后計算A各部分在B多邊形的內部還是外部,以及B各部分在A的內部還是外部(求交集時結果選取的是內部部分,求并集時結果選取的是外部部分,求差集時A求的在B的外部,B求的是在A的內部部分),如圖2—圖4所示。
3) 將有效的部分連成一個新的多邊形面域。

圖2 A與B求交集示意圖

圖3 A與B求并集示意圖

圖4 A與B求差集示意圖
① 線要素節點計算與提取
將參與拓撲構面的線要素進行相交計算,判斷其是否相交,若相交,將所有交點提取,同時將每個線要素的首末端點也作為節點提取(圖5中黑點即為要提取的節點)。
② 線的打斷處理

圖5 拓撲構面運算示意圖
對每條線經過的節點,按其經過順序對線進行打斷操作,并剔除重復線。以圖5為例,其中黑點間的12條線即為4條線被打斷后形成的。
③ 拓撲構面
對打斷后的線要素進行構面,首先判斷其首尾端點是否相同,如果相同則返回面,否則尋找端點相連的最左側(或最右側)的線,如果未找到構面,進行下一條線的計算。如果找到,則進行連接,通過遞歸,直至首尾點相同返回閉合的線要素即面;或找不到端點相連線,返回空值[3]。其拓撲構面流程如圖6所示。

圖6 拓撲構面流程
AutoCAD下通常使用封閉的多段線來表示線,這些面的拓撲關系的計算問題如圖7所示。建立拓撲關系算法如下(以圖8中A與B為例):
1) 比較A與B的外包矩形對角線的長度大小,如果B>A,A與B互換。

圖7 建立拓撲關系示意圖

圖8 建立拓撲關系樹結構表示
2) 計算B的Label點P。
3) 判斷點P是否在A的外包矩形內,如果不在則結束運算,B不在A內,如果在內繼續步驟4)。
4) 根據射線法計算P點是否在A內,如果在外則結束運算,B不在A內,如果在內繼續步驟5)。
5) 添加B作為A樹的子節點,然后根據樹本身的節點重新排列B所在所節點的位置。
四、建庫數據處理程序開發實現
本文涉及的建庫數據處理關鍵技術均采用ObjectARX在AutoCAD平臺下進行二次開發實現。
程序功能模塊分為數據編輯模塊、數據檢查模塊、坐標轉換模塊、數據輸出模塊、輔助功能模塊,程序主菜單如圖9所示,輸出結果如圖10所示。

圖9 建庫數據處理程序主界面

圖10 數據輸出結果
五、結束語
本文通過ObjectARX二次開發實現了在AutoCAD平臺下完成DLG建庫數據處理所涉及的算法,
建立了基于AutoCAD的DLG與空間數據庫的鏈接,實現了DLG中各種圖元數據的自動入庫,以及圖元與屬性信息的鏈接。實踐證明,可以充分利用AutoCAD強大編輯制圖的優點,二次開發解決DLG建庫數據處理技術問題,可以生產出滿足建庫數據要求的數據。該技術路線大大提高了數據入庫的工作效率,為數字城市建設提供了強有力的技術保障,為目前存于AutoCAD平臺下的DLG直接處理生產建庫數據提供了一種有效的方法。
參考文獻:
[1]張雪松,張友安,鄧敏.AutoCAD環境中組織GIS數據的方法[J].測繪通報,2003(11):45-48.
[2]曾憲珪,徐昌榮.基于AutoCAD數字地形圖屬性數據組織方案[J].測繪通報,2005(2):29-31.
[3]胡玉臣,劉達,王文明,等. 基于AutoCAD拓撲構面自動化的實現與應用實例[J].測繪與空間地理信息,2011(4):201-202.
[4]陳軍,劉萬增,李志林,等.線目標間拓撲關系的細化計算方法[J].測繪學報,2006,35(3):255-260.
[5]周培德.計算幾何—算法設計與分析[M].3版.北京:清華大學出版社,2008:237-258.
[6]鄔葆苓. 基于ARX的圖庫管理系統的設計與實現[J].計算機工程與設計,2003,24(4):63-66.
[7]吳志春,陳勝.基于ObjectARX的土地整理竣工測繪內業系統設計與實現[J].測繪與空間地理信息,2012,35(8):225-226.
[8]梁雪春, 宋德明. AutoCAD 2002 二次開發技術指南[M].北京:清華大學出版社,2001.
[9]郭朝勇.AutoCAD 2002定制與開發[M].北京:清華大學出版社,2002.
[10]劉仁義,劉南,蘇國中.圖形數據與關系數據庫的結合及其應用[J].測繪學報,2000,29(4):229-333.
[11]王卉.一種解決GIS多源數據無縫集成的方法[J].測繪工程,2003,12(2):11-13.
[12]陳占龍, 馮齊奇, 吳信才.復合面狀對象拓撲關系的表達模型[J].測繪學報,2015,44(4):438-444.
[13]國家測繪局.GB/T 13923—2006 基礎地理信息要素分類與代碼[S].北京:測繪出版社,2006.