国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

CAD地形圖高程信息快速提取的技術(shù)與實現(xiàn)

2015-04-10 03:47
地理空間信息 2015年1期
關(guān)鍵詞:二次開發(fā)高程組件

楊 婷

(1.廣東省國土資源測繪院,廣東 廣州 510500)

CAD地形圖高程信息快速提取的技術(shù)與實現(xiàn)

楊 婷1

(1.廣東省國土資源測繪院,廣東 廣州 510500)

針對CAD地形圖數(shù)據(jù)中高程點和高程標(biāo)注分開存儲的不便及容易造成高程信息丟失等問題,提出一套快速提取高程信息的技術(shù)及其實現(xiàn)流程,該技術(shù)基于AutoCAD.NET API和ArcEngine二次開發(fā)組件,并在AutoCAD軟件平臺上開發(fā)了相應(yīng)的數(shù)據(jù)提取和轉(zhuǎn)換操作面板。實驗證明,該工具能快速批量提取高程信息,并能轉(zhuǎn)換成相應(yīng)的GIS格式數(shù)據(jù)。

地形圖;高程;信息提?。籄utoCAD.NET API

目前,我國大部分城市的地形圖數(shù)據(jù)使用標(biāo)準的DWG文件格式存儲,與GIS數(shù)據(jù)要求圖形和屬性信息一體化存儲不同,CAD數(shù)據(jù)在屬性信息存儲方面相對較弱,一般只要求圖形符合制圖規(guī)范即可,容易導(dǎo)致其在格式轉(zhuǎn)換或信息提取過程中出現(xiàn)信息丟失的情況。例如,在地形圖數(shù)據(jù)中,一般只記錄高程點的二維平面坐標(biāo)值,而點所對應(yīng)的高程值并沒有記錄在自身的第三維坐標(biāo)中,取而代之的是使用高程標(biāo)注(文字)或者符號塊的塊屬性來記錄。因此,在進行數(shù)據(jù)格式轉(zhuǎn)換或高程值提取時,不僅需要獲取高程點的信息,還要關(guān)聯(lián)它對應(yīng)的塊屬性或標(biāo)注,增加了數(shù)據(jù)處理的難度,且容易造成信息丟失。

針對上述問題,本文提出了一種能快速提取高程點高程信息的技術(shù),該技術(shù)基于AutoCAD.NET API,結(jié)合ArcEngine二次開發(fā)組件,在AutoCAD 2008軟件平臺上開發(fā)了數(shù)據(jù)提取和轉(zhuǎn)換的操作面板,并最終轉(zhuǎn)換成GIS格式數(shù)據(jù),方便更高級的數(shù)據(jù)處理與分析。

1 AutoCAD.NET API簡介及基本方法

1.1 AutoCAD.NET API簡介

AutoCAD具有強大而完善的圖形繪制與編輯功能。在該平臺上,用戶可以使用多種編程方式,如AutoLISP、ObjectARX等進行二次開發(fā)或功能定制,以增強其數(shù)據(jù)交換能力和平臺適用性。從2006年開始,Autodesk公司為其開發(fā)增加了.NET API組件。該組件提供了一系列托管的外包類(Managed Wrapper Class),使開發(fā)人員可以在.NET框架下,使用任何支持.NET的語言,如C#、VB.NET等對AutoCAD進行二次開發(fā)。其優(yōu)點是完全面向?qū)ο?,在擁有與C++相匹配的強大功能的同時,具有入門簡單、方便易用的特點,是較理想的AutoCAD二次開發(fā)工具。

1.2 基本方法與應(yīng)用

AutoCAD.NET API組件可以讀取DWG文件中包含的所有圖形、樣式、組織結(jié)構(gòu)、圖形顯示等記錄,并將其解析成對象類型。通過調(diào)用這些對象的屬性和方法,可以便捷地獲取用戶所需信息。在.NET API中,常用的基本方法包括圖形選擇、符號塊屬性查詢、空間查詢、擴展記錄讀寫。另外,還可以結(jié)合GIS二次開發(fā)組件,如ArcEngine組件等進行高級開發(fā)應(yīng)用。

1)圖形選擇。圖形選擇是.NET API中較為常用的功能之一。當(dāng)用戶需要讀取同一類實體,例如僅讀取高程點圖層中的點實體或者高程注記等內(nèi)容時,只需調(diào)用Editor類中的GetSelection()方法,并設(shè)置其過濾條件SelectionFilter,即可獲得相關(guān)記錄。

2)符號塊屬性查詢。在CASS軟件中,一般使用塊參照來繪制高程點,同時將高程值存儲在塊參照的塊屬性中,除了CASS軟件能識別該屬性外,只能通過編寫程序讀取。因此,為了便于用戶讀取高程信息,可以通過定制窗體,讓用戶選擇要讀取的塊參照以及塊屬性名稱,相關(guān)讀取功能由API組件負責(zé)實現(xiàn)。

3)空間查詢??臻g查詢能方便用戶快速獲取指定空間范圍或者滿足一定空間約束條件的圖形。利用API中Editor類的SelectWindow()、SelectCrossingWindow()、SelectWindowPolygon()、SelectCrossingPolygon()等方法,通過構(gòu)造多邊形和矩形選擇框來選擇包含于其中或者與之相交的圖形,極大方便了獲得高程點鄰近的高程標(biāo)注(文字)。

4) 擴展記錄讀寫。相比于GIS數(shù)據(jù)的屬性存儲功能,CAD數(shù)據(jù)由于受限于平臺特點,往往只允許用戶將屬性值寫入已有的一些屬性字段中,如厚度等,或者將屬性名稱和屬性值并列寫入每個圖形的XDATA中。前者由于字段個數(shù)少且屬性名稱難以匹配,使用非常不便;而后者在讀寫過程中,需要頻繁地匹配屬性的名稱,才能得到其中的屬性值,因而讀寫速度較慢?;?NET API組件,可將屬性以擴展記錄(Xrecord)的方式添加進用戶自定義的擴展字典中。其中,擴展記錄的Name屬性用于存儲屬性名稱,其Data屬性則存儲屬性值,詳細的讀寫流程見圖1。通過該方法,能大大提高屬性值的讀寫速度。

5)結(jié)合ArcEngine組件進行高級二次開發(fā)應(yīng)用。ArcEngine是ESRI公司開發(fā)的一個完整嵌入式GIS組件庫?;谠摻M件庫,開發(fā)者能將CAD數(shù)據(jù)完好無損地轉(zhuǎn)成GIS數(shù)據(jù),同時,還能把ArcGIS軟件的空間分析模塊、三維分析模塊等集成到AutoCAD軟件平臺中,便于更高級的數(shù)據(jù)處理和分析。

圖1 擴展記錄的讀寫流程

2 地形圖高程信息快速提取的技術(shù)與實現(xiàn)

從上文可知,地形圖的高程信息使用2種方式存儲與表達,一是將高程點用塊參照表示,其高程值存儲在塊參照的某個屬性字段中;二是使用標(biāo)注顯示高程值,并將其繪制在以高程點為中心的一定半徑的圓形緩沖區(qū)內(nèi)。因此,在提取高程信息時,需要設(shè)計2類算法流程。

2.1 提取塊參照的高程值

基于塊參照提取高程值的流程包括以下步驟:

步驟1:用戶在操作面板中選擇存儲高程點信息的塊參照名稱及其塊屬性名稱。

步驟2:在DWG文件中獲取指定塊參照名稱的所有塊參照。

步驟3:遍歷每一個塊參照,讀取其二維平面坐標(biāo),并判斷其第三維坐標(biāo)是否為空。如為空,進入步驟4;否則,跳至步驟5。

步驟4:獲得塊參照中指定屬性名稱的塊屬性,讀取其高程值,并跳至步驟6。

步驟5: 讀取第三維坐標(biāo)值作為高程值,進入步驟6。步驟6:將該高程點的坐標(biāo)、高程值等以GIS格式輸出,或者將高程值存儲于塊參照的擴展記錄中,便于日后數(shù)據(jù)的處理與分析。

步驟7:判斷是否遍歷完所有塊參照,如果已經(jīng)遍歷完,結(jié)束算法;否則,返回步驟3。

具體的流程如圖2所示。

圖2 提取塊參照高程值流程

2.2 提取高程標(biāo)注的高程值

基于高程標(biāo)注提取高程值的流程包括以下步驟:

步驟1:用戶在操作面板中選擇存儲高程點的CAD圖層名稱。

步驟2:在DWG文件中獲取指定圖層名稱的所有高程點。

步驟3:遍歷每一個高程點,讀取其二維平面坐標(biāo),并判斷其第三維坐標(biāo)是否為空,如為空,進入步驟4;否則,跳至步驟6。

步驟4:以高程點為中心,構(gòu)造指定半徑的圓形(多邊形)緩沖區(qū),利用該緩沖區(qū)作空間查詢,獲得包含于其中的或者與之相交的高程標(biāo)注集合。

步驟5:如果該集合的個數(shù)為1,則認為該標(biāo)注與高程點一一對應(yīng),直接將標(biāo)注內(nèi)容作為高程值,進入步驟7;如果集合個數(shù)大于1,則視集合中的標(biāo)注是否已被選擇,只選擇未被讀取的標(biāo)注,進入步驟7;一旦多于1個標(biāo)注未被讀取過,則標(biāo)記該高程點異常,跳至步驟8。

步驟6: 讀取第三維坐標(biāo)值作為高程值,進入步驟7。

步驟7:將該高程點的坐標(biāo)、高程值等以GIS格式輸出,或者將高程值存儲于塊參照的擴展記錄中,便于日后的數(shù)據(jù)處理與分析。

步驟8:判斷是否遍歷完所有塊參照,如果已經(jīng)遍歷完,結(jié)束算法;否則,返回步驟3。

具體流程如圖3所示。

圖3 提取高程標(biāo)注高程值流程圖

3 應(yīng)用實例

為了驗證算法的有效性,將程序編譯生成DLL動態(tài)鏈接庫,在AutoCAD 2008平臺中加載并彈出了自定義的菜單項與操作面板,用戶可以根據(jù)數(shù)據(jù)實際情況選擇相應(yīng)的提取方法。本文以某地的1∶500地形圖數(shù)據(jù)為例,其高程值存儲在塊參照中,但其第三維坐標(biāo)值為空,可利用本文所提出的算法將所有高程點的高程值提取并生成為GIS格式數(shù)據(jù),如圖4所示。

4 結(jié) 語

基于AutoCAD的二次開發(fā)平臺,定制各種用于解決實際應(yīng)用問題的功能和操作界面,能大大提高業(yè)務(wù)人員的工作效率,具有較高的應(yīng)用價值。本文針對CAD地形圖數(shù)據(jù)中高程點高程值提取的難題,設(shè)計了一套快速提取高程信息的技術(shù),利用AutoCAD.NET API提供的基本方法,結(jié)合ArcEngine組件的GIS數(shù)據(jù)處理模塊,優(yōu)化了高程點高程信息提取的流程,有利于更高級的數(shù)據(jù)處理和分析。

圖4 高程點信息提取結(jié)果

[1] 王海英,韋廖軍.地形圖高程點高程自動提取的程序設(shè)計與實現(xiàn)[J].城市勘測,2011(5):135-138

[2] 袁源琳,張新長,黃健鋒.AutoCAD地形圖數(shù)據(jù)規(guī)整入庫的研究與應(yīng)用[J].測繪通報,2013(5):84-88

[3] 李冠億.深入淺出AutoCAD.NET二次開發(fā)[M].北京:中國建筑工業(yè)出版社,2012

[4] 申勝利,李華.基于ArcEngine的ArcGIS與AutoCAD數(shù)據(jù)轉(zhuǎn)換研究[J].測繪通報,2007(2):41-43

[5] 張葉,孫毅中,陳年松.CAD城市基礎(chǔ)數(shù)據(jù)到GIS轉(zhuǎn)換的有關(guān)問題探討[J].測繪與空間地理信息,2007,30(1):94-97

[6] 張雪松,張友安,鄧敏.AutoCAD環(huán)境中組織GIS數(shù)據(jù)的方法[J].測繪通報,2004(11):45-48

[7] 李勇平.DWG到SHP數(shù)據(jù)的一種實用轉(zhuǎn)換方法[J].國土資源信息化,2010(3):29-32

[8] 王波,張亮,孫霞.CAD向GIS數(shù)據(jù)的轉(zhuǎn)換入庫[J].地理空間信息,2011,9(3):24-26

P208

B

1672-4623(2015)01-0162-03

10.3969/j.issn.1672-4623.2015.01.054

楊婷,碩士,研究方向為地圖學(xué)與地理信息系統(tǒng)。

2014-10-15。

猜你喜歡
二次開發(fā)高程組件
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
8848.86m珠峰新高程
新型碎邊剪刀盤組件
淺談基于Revit平臺的二次開發(fā)
U盾外殼組件注塑模具設(shè)計
淺談Mastercam后處理器的二次開發(fā)
西門子Easy Screen對倒棱機床界面二次開發(fā)
GPS高程擬合算法比較與分析
風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
SDCORS高程代替等級水準測量的研究