王海英,韋廖軍
(南寧市勘測院,廣西南寧 530001)
地形圖高程點高程自動提取的程序設計與實現
王海英?,韋廖軍
(南寧市勘測院,廣西南寧 530001)
出于提取高程數據的需要,針對地形圖中高程點及其標注一一對應的特點,提出了批量提取高程點高程的自動提取算法,實現了一次完成所有高程點高程值賦值,并給出了核心實現代碼。
高程;自動;提取
大比例尺地形圖數據是城市勘測工作的基礎,是我們進行地理信息產品深加工的基礎,而地形圖數據是二維平面數據,沒有第三維的高程值,這為我們后續利用高程控制點生成DEM,進行土方量計算等工作留下了困難,因此,快速、準確提取高程數據,即對相應高程點賦上準確的高程值,非常具有現實意義。
ObjectARX是Autodesk公司針對AutoCAD平臺上的二次開發而推出的一個開發軟件包,它提供了以C++為基礎的面向對象的開發環境及應用程序接口,能真正快速的訪問AutoCAD圖形數據庫。用ObjectARX開發的CAD軟件具有模塊性好、獨立性強、連接簡單、使用方便、內部功能高效實用等優點,并且支持MFC(Microsoft Fundation Class),能簡潔并高效地實現許多復雜功能。
ObjectARX的類庫構成有以下幾項:
(1)AcRc庫,提供系統層次的類,用于動態鏈接庫的初始化及運行時刻類的注冊和標識。
(2)AcEd庫,提供一組用于定義和注冊新的Auto-CAD命令的類。
(3)AcDb庫,提供一組用于存取AutoCAD圖形數據庫結構的類。
(4)AcGi庫,提供繪制AutoCAD實體圖形界面的類。
(5)AcGe庫,提供的實用類用于執行二維和三維幾何操作。
3.1 AutoCAD數據庫
AutoCAD基本的數據庫對象是實體、符號表和字典。實體是在AutoCAD圖內部表示圖的一種特殊數據庫對象,用戶可以在屏幕上看見實體并能對其進行操作。符號表和詞典是用于存儲數據庫對象的容器,這兩個容器對象都映射到一個符號名到一個數據庫對象。實體包含在符號表記錄中,因此要訪問一個圖形對象,需要遵循以下步驟:
(1)確定擁有訪問對象的圖形數據庫。
(2)獲得圖形數據庫的塊表。
(3)獲得一個存儲實體的塊表記錄,所有模型空間的實體都存儲在模型空間的特定記錄中。
(4)遍歷塊表模型空間,根據符號類別及編碼判斷是否是需要訪問的實體。
3.2 高程提取的算法設計
由于地形圖是二維平面圖,高程控制點雖然擁有x,y,z三個屬性值,但是我們的通常處理中,高程控制點的z值為0,高程控制點的高程值即為高程注記所表示的值。而通常每個高程點對應的高程注記屬于文字類,即多行文字、單行文字,離高程控制點最近,因此,我們可以通過如下流程來提取高程:
(1)根據高程控制點的編碼和類別提取所有的高程控制點與高程注記。
(2)獲取所有高程點的平面坐標及高程注記的平面坐標。
(3)判斷高程點數目是否不為零,若為零,則退出,若不為零進入步驟(4)。
(4)從高程數組中提取一個高程控制點,取出其X、Y坐標。
(5)遍歷高程注記,尋找離該高程點最近的高程注記。
(6)判斷該高程點與高程注記之間的距離是否小于限差,若小于,進入步驟(7),否則進入步驟(8)。
(7)將該高程注記值賦值給該高程點,并將該高程注記設置為已使用,該高程點設置為已提取高程值,不再參與后續的遍歷。然后進入步驟(3),繼續提取下一個高程點的高程。
(8)將該高程點設置為無對應注記,剔除出待遍歷高程點數組,進入步驟(3)。

圖1 算法流程圖
部分程序代碼如下:




為了驗證程序的有效性,本文從地形圖庫中隨機調取一幅1∶500地形圖,打開如圖2所示,然后加載ARX程序,然后執行“查看高程點”,AutoCAD界面左邊會彈出一可移動面板如圖2所示,可以看出每個高程點的高程值為0,而其實際的高程值是通過高程注記來表示的;然后執行“提取高程”之后,再執行“查看高程點”,如圖3所示,界面左邊的可移動面板中各高程點相對應的高程值已賦到其對應的屬性中。因此用此程序可迅速將各高程點對應的高程注記值提取出來賦到其對應的屬性中。

圖2 源圖形高程點高程值顯示圖

圖3 處理后高程點高程值顯示圖
本文利用ObjectARX開發環境所設計的程序,可以直接對高程數據提取高程,為后續的土方計算,DEM生成打下了堅實的基礎,節省了工作人員的大量勞動,提高了工作效率。
[1] 張帆.ObjectARX開發實例教程[Z].2007
[2] 李長勛.AutoCAD ObjectARX程序開發技術[M].北京:國防工業出版社,2005
[3] 董玉德.CAD二次開發理論與技術[M].合肥:合肥工業大學出版社,2009
[4] 秦洪現.Autodesk系列產品開發培訓教程(附光盤).北京:化學工業出版社,2008
[5] 任愛珠.土木工程CAD技術[M].北京:清華大學出版社,2006
[6] 周衛.AutoCAD地圖制圖與系統開發[M].北京:科學出版社,2008
Design and Implement of Automatically Extract Elevation of Elevation Point
Wang Haiying,Wei Liaojun
(Nanning Exploration&Survey Institute,Nanning,530001,China)
To extract elevation data,for the characteristic that one elevation point corresponding to one mark,a method is Proposed that automatically extract elevation of elevation point in this paper,the author achieve completely assignment of all the elevation point elevation value and list the core implementation code.
Elevation;Automation;Extraction
2011—05—04
王海英(1976—),女,工程師,主要從事工程測量及數據處理工作。
1672-8262(2011)05-135-04
P209
B