摘 要:矢量地形數據是一種重要的基礎地理信息數據,其屬性精度、邏輯一致性是其重要質量元素。本文介紹了基于AutoCAD二次開發實現矢量地形數據自動化檢查的技術方法。
關鍵詞:拓撲檢查;屬性檢查;CAD數據質量;VBA編程
1 引言
基礎地理數據是基礎地理信息系統的核心數據。我們采用AutoCAD平臺,對汕頭市南岸地形數據進行加工處理。處理后的AutoCAD地形數據必須通過嚴格檢查才能提供使用。目前AutoCAD地形圖元素的屬性關系和空間關系較復雜,而且一些要素的屬性和關系是隱含的。因此,為了提高對AutoCAD地形數據的檢查效率,我們采用計算機程序檢查和人工檢查相結合的方法。本文介紹了利用AutoCAD二次開發環境進行矢量地形數據檢查程序的設計與開發,進一步提高了地形圖數據檢查工作的效率。
2 CAD地形圖元素之間的關系
CAD地形圖元素的屬性關系和彼此的空間關系是比較豐富的。保證元素空間屬性完整、關系正確是順利進行CAD地形數據檢查的前提。
2.1 CAD地形圖元素的屬性關系
保證入庫前元素的代碼值(在AutoCAD中一般存放在thickness中)和要素表對應、擴展屬性完整、注記對齊方式統一、字體符合要求、不存在微短線、注記和屬性一致等等。
2.2 空間對象及拓撲關系
空間對象是客觀存在的地理實體在人類認識世界中的反映,它是人們對客觀世界的認知與抽象。“空間”意味著數據所表示的事物具有一定的點位、形狀和性質等特征。無論空間對象多么復雜,都可以抽象為以下幾類:
點對象:一個點對象僅由一個點組成,是沒有區域的一種空間物體。點的一個關鍵屬性由它的地理編碼坐標來表示(如經緯度坐標,大地坐標等),如控制點等。
線對象:由一組順序相連的點所組成的空間要素,地理編碼由一組點的坐標來表示,組成線的點稱為節點(Node),如河流、道路、輸電線路等。
面對象:一個封閉區域。如湖泊、水庫、行政區等。
空間對象除了具有各自的幾何特征(位置、形狀)和非幾何特征(屬性值)外,它們之間的一些具有空間特征的關系更為重要,這些關系被稱為空間關系。空間關系是空間數據組織、查詢、分析和推理的基礎。空間關系通常分為三大類,即度量關系、順序關系和拓撲關系,空間度量關系是用某種度量空間中的度量指標來描述目標及目標間的關系,如空間目標的周長、面積等以及空間目標之間的距離。順序空間關系是用來描述對象在空間中的某種順序的關系,如前后、上下、左右、東西南北等;拓撲關系是不考慮度量和方向的空間實體之間的空間關系。空間拓撲關系是指在拓撲變換(旋轉、平移、縮放等)下保持不變的空間關系,即拓撲不變量,如相離、包含關系等。
地理空間中的點、線、面實體之間存在著各種各樣的拓撲關系,拓撲關系是空間關系中最重要的基本關系,它是空間推理、查詢與分析的基礎。
3 程序設計與實現
程序的檢查內容主要包括圖形屬性檢查和圖形拓撲關系檢查。以下是程序的設計與實現。
3.1 總體設計
在VBA編程環境下,在程序進行檢查操作的時候,首先獲取被檢查的CAD圖形元素并生成數據選擇集,在獲取的選擇集中進行圖形元素的屬性檢查和拓撲檢查。在檢查過程中程序需要參照系統庫的相關標準。系統總體結構圖見圖1所示。
3.2 數據屬性檢查
數據屬性檢查主要有以下幾個方面:
(1)地形圖元素分類與代碼的正確性;(2)地形圖元素屬性項內容的完整性;(3)地形圖元素屬性值的正確性;(4)地形圖元素分層的正確及完整性;(5)注記的正確性等。
例如:通過高程值被判斷為首曲線或計曲線的等高線,其編碼必須與首曲線或計曲線對應;高程點的高程值與其注記必須一致;圖面的每條線段都與對照表進行對比,確保線型、所在圖層、線寬、厚度一致。
其中擴展屬性在CAD圖形屬性中是一種特殊的屬性,擴展屬性不能通過特性列表直接得到,必須通過Object.GetXData()方法獲得。比如某房屋的擴展屬性為“磚,2”,其含義為該實體的結構為磚結構,樓層為2層;某道路中線的擴展屬性為“磊廣路,城市主干道”,其含義為該道路的路名為“磊廣路”,道路等級為“城市主干道”。檢查時遍歷編組里面的實體成員,參照擴展屬性的定義及規定對各項內容進行分類檢查,具有擴展屬性的實體與同編組的其他成員的擴展屬性必須一致,這常見于房屋面和水庫面檢查。
CAD圖形數據屬性檢查流程圖可以通過圖2進行描述。
3.3 圖形拓撲關系檢查
3.4 對圖形進行自動處理
部分圖形存在內容為空的文字,無法利用“快速選擇”工具選中。因此程序對圖形中所有空白文字進行判斷并刪除,以達到清理垃圾要素的效果。數據改造需要對部分水系面、植被面和房屋面進行編組,少數地形圖中空編組數量達到幾百萬個。程序對空編組進行了清理,使圖形文件變小的同時不影響圖形使用。此外,實現了對線段的自相交(頂點重疊)進行自動修復,保證各頂點的凸度不變,且不破壞編組結構,生產效率得到提高。
3.5 實例應用
3.5.1 檢查屬性信息
對實例數據進行檢查,如果圖形數據中存在如:元素編碼不正確、擴展屬性不完整、注記和屬性不對應等問題,都會在錯誤報告中有顯示。程序檢查的部分界面如圖3所示。
經過對實例數據的檢查,結果顯示高程點注記和屬性值不對應。如圖4,高程點屬性為7.33,而其高程注記為7.23。
3.5.2 檢查拓撲
檢查拓撲就是根據要檢查的要素和規則,檢查地形圖中所有可能存在的拓撲問題。圖5是檢查到的一個面相交的拓撲錯誤。
4 結束語
該程序在汕頭市南岸數據整理加工項目中承擔了70%-80%的數據檢查工作量。程序檢查結合人工檢查,可以更加有效的檢查CAD地形圖數據。本程序將進一步完善自動改錯功能,優化拓撲檢查速度,爭取在AutoCAD數據的質量控制和GIS建庫中發揮更大的作用。
參考文獻
[1]高成慧,李燕.關于AutoCAD二次開發工具的探討[J].現代計算機(專業版),2002(2).
[2]楊廣旋,楊浩,孫靜.AutoCAD定制與應用程序設計[M].北京:科學出版社,2005.
[3]吳長彬,閭國年.線面拓撲和度量關系的細分描述和計算方法[J].計算機輔助設計與圖形學學報,2009,21(11).
[4]http://www.autodesk.com.cn.
作者簡介:黃鵬飛(1982-),男,計算機應用助理工程師,現主要從事工程測繪、數據處理與應用工作。