李杰,郝會民,李慧
(石家莊市勘察測繪設計研究院,河北石家莊 050019)
分幅數字地形圖元數據的高效提取
李杰?,郝會民,李慧
(石家莊市勘察測繪設計研究院,河北石家莊 050019)
元數據是“關于數據的數據”,在數字地形圖測繪活動中,分幅數字地形圖是最重要的成果形式之一,其圖外要素包含著重要的地形圖元數據信息。在AutoCAD環境下,如何從分幅數字地形圖中快速、靈活、高效地提取出元數據信息是本文討論的主要內容。
AutoCAD;分幅數字地形圖;元數據;選擇集
在數字地形圖測繪當中,圖形數據成果一般以地形塊圖和分幅圖的形式提供,其中最常用且最重要的是分幅地形圖,標準的圖幅規格一般有40 cm×50 cm和50 cm×50 cm兩種。數字地形圖圖外要素一般包含有:圖名和圖號、接圖表、密級、測繪單位、測圖時間、坐標系統及高程基準、基本等高距、圖式標準、比例尺、測量人員以及圖幅最小包圍盒,這構成了分幅數字地形圖的基本元數據信息。
分幅數字地形圖元數據信息的存儲表現形式主要有兩種,一種是“圖塊+屬性”的方式,即通過創建帶有屬性項的圖廓圖塊,來實現元數據信息的管理,在插入圖廓塊文件時,可以設置與塊關聯的屬性值;另一種方式是以AutoCAD實體的形式表示,即以多義線、線段、文字的形式表現。兩種方式各有優缺點,可以根據自己的需要選擇其中的一種方式來存儲元數據信息,本文著重探討采用第二種方式時元數據的提取問題。
實現地形圖元數據的高效提取主要從兩個方面考慮:一是開發途徑(工具),二是算法。
2.1 開發途徑(工具)
AutoCAD提供了強大的二次開發功能,AutoLISP、VLISP、ADS、ObjectARX、VBA等均可以進行二次開發,通過VBA或VB(或VB.NET)結合AutoCAD類型庫的方式進行二次開發應當說是達到快速、簡單、高效開發效果的主要途徑之一。VBA和VB(或VB.NET)的主要區別在于,VBA與AutoCAD在同一操作空間運行,可為AutoCAD提供智能化的快速編程環境,運行速度更快,但其編程功能及界面的美觀程度方面要遜色很多,本文以VB 6.0開發為例進行闡述。
2.2 算法
算法應有廣泛的適用性,不能局限于某一種固定的數據格式,算法除了可以處理符合國標圖式的數據外,還應考慮到各地、各單位數據格式多樣的情況,筆者采用圖形模板的方式來解決這一問題。
提取分幅地形圖中元數據的目的是為了建立元數據庫,在建庫之前應已進行了充分的系統需求性分析與調查,并完成數據庫庫體設計。為了下文表述方便,現假定某元數據庫中某數據表的字段屬性設置如表1所示。

數據庫表舉例 表1
3.1 編程環境設置
利用VB 6.0新建一個標準工程,添加相應版本AutoCAD類型庫的引用,定義AutoCAD工程變量,使用CreateObject、GetObject函數建立連接,具體程序編碼內容在相應的出版物中有詳細介紹,此處不再過多贅述。具體關鍵代碼如下:


3.2 算法的實現
首先,制作圖形模板,打開任意一幅分幅數字地形圖,刪除所有圖內要素,只留下圖外要素內容,以特定的文件名另存為一個圖形文件。其次,根據元數據庫字段名稱在AutoCAD圖形文件中添加對應的圖層名稱,并在該圖層中繪制一個適中的矩形框,確保所有圖幅相應的AutoCAD文字信息被完全包含在該矩形框內(這一點非常容易做到),編程讀取出矩形框與分幅圖外圖廓重心的相對位置信息,記錄到一個文本文件中(同時保存矩形所在的圖層名即元數據字段名稱)。最后,批量自動打開需要提取元數據的圖形文件,逐一提取元數據信息。提取方法是這樣的:打開圖形后,求解出該分幅圖外圖廓的重心坐標,根據上一步形成的文本文件中存儲的矩形框位置信息,創建AutoCAD多邊形選擇集,將選擇集中的文字信息按坐標位置排序,即可獲取相應的元數據信息。舉例描述如下:
(1)圖形模板的制作

圖1 原始數字地形圖(局部)

圖2 分幅地形圖元數據圖形模板文件(局部)
實際制作圖2中的矩形框時,必須做到矩形寬度足夠大,例圖中限于紙張寬度并未畫到足夠大。
(2)元數據矩形框位置信息的提取
這一步完全在圖形模板文件中進行。首先確定外圖廓的重心坐標。有兩種方法可以確定:一是根據外圖廓的圖層、顏色、線寬等信息構建選擇集,調用實體的GetBoundingBox方法獲取其最小包圍盒,根據對角線坐標平均數求出重心坐標;二是根據AutoCAD系統變量求出當前圖形的左下角和右上角坐標,坐標平均數進行求整處理后亦可以求出所需的重心坐標(使用此方法時,請注意圖形文件中不宜有不屬于本圖幅的要素,否則會使圖形范圍與圖幅范圍差別過大,從而導致重心坐標錯誤)。
其次根據圖層信息創建選擇集,逐一獲取元數據矩形框,調用實體的GetBoundingBox方法求得其外圍最小包圍盒,將最小包圍盒坐標與重心坐標的X、Y值的差值寫入文本文件。文件內容為:
圖名,-40.0,225.5,40.0,231.8
圖號,-21.4,217.5,21.4,222.5……
(3)分幅地形圖元數據的提取
由程序批量打開分幅地形圖,打開后首先按照(2)中的方法,確定當前圖幅外圖廓的重心,自動打開元數據矩形框位置文本文件,創建只選擇文本數據的多邊形選擇集,根據選擇集中各要素在X、Y方向上的空間序列關系,判斷該文字信息是橫向排列還是豎向排列,從而提取出符合語義的元數據信息,寫入相應的數據庫中。
(4)算法的優點
算法具有足夠的靈活性。程序不依賴于固定的數據,在不調整程序代碼的前提下,通過靈活地調整圖形模板文件,即可順利實現元數據的提取。該算法簡單,編程實現非常快捷。
本文主要講述利用圖形模板技術方案實現分幅數字地形圖元數據快速、靈活、高效的提取,經筆者在VB.net+AutoCAD模式下實踐驗證,本文提出的算法可行,已應用于我院數字地形圖元數據庫建設之中。
Efficient Method of Metadata Extraction from Framing Digital Topographic Maps Based on AutoCAD
Li Jie,Hao HuiMin,Li Hui
(Shijiazhuang Institute of Surveying,Mapping&Geotechnical Investigation,Shijiazhuang 050019,China)
Metadata is“data about data”.In surveying and mapping activities of the digital topographic maps,the framing digital topographic map is one of the most important result forms,which contains important metadata information in the outside map elements.How to extract metadata information fast,flexibly and efficiently in the AutoCAD environment is the main content of this paper.
AutoCAD;Framing Digital Topographic Map;Metadata;SelectionSet
1672-8262(2011)01-100-02
P209
B
2010—03—12
李杰(1974—),男,工程師,主要從事技術管理及軟件開發工作。