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