• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      楊 婷

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

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

      楊 婷1

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

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

      地形圖;高程;信息提取;AutoCAD.NET API

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

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

      1 AutoCAD.NET API簡(jiǎn)介及基本方法

      1.1 AutoCAD.NET API簡(jiǎn)介

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

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

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

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

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

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

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

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

      圖1 擴(kuò)展記錄的讀寫(xiě)流程

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

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

      2.1 提取塊參照的高程值

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

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

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

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

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

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

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

      具體的流程如圖2所示。

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

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

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

      步驟1:用戶在操作面板中選擇存儲(chǔ)高程點(diǎn)的CAD圖層名稱。

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

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

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

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

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

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

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

      具體流程如圖3所示。

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

      3 應(yīng)用實(shí)例

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

      4 結(jié) 語(yǔ)

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

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

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

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

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

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

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

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

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

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

      P208

      B

      1672-4623(2015)01-0162-03

      10.3969/j.issn.1672-4623.2015.01.054

      楊婷,碩士,研究方向?yàn)榈貓D學(xué)與地理信息系統(tǒng)。

      2014-10-15。

      猜你喜歡
      二次開(kāi)發(fā)高程組件
      無(wú)人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
      能源工程(2022年2期)2022-05-23 13:51:50
      8848.86m珠峰新高程
      新型碎邊剪刀盤組件
      淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      U盾外殼組件注塑模具設(shè)計(jì)
      淺談Mastercam后處理器的二次開(kāi)發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
      GPS控制網(wǎng)的高程異常擬合與應(yīng)用
      風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
      SDCORS高程代替等級(jí)水準(zhǔn)測(cè)量的研究
      县级市| 呈贡县| 漯河市| 寿阳县| 哈巴河县| 石阡县| 正蓝旗| 姜堰市| 饶河县| 怀集县| 江川县| 图片| 图木舒克市| 寻乌县| 江津市| 扶绥县| 甘洛县| 凤冈县| 灵寿县| 丰台区| 密山市| 神木县| 安多县| 洪雅县| 漯河市| 绥化市| 阳山县| 开封县| 会泽县| 明光市| 辉县市| 苏尼特左旗| 康乐县| 普安县| 建始县| 吉林省| 两当县| 邵东县| 五台县| 鄂州市| 岫岩|