規(guī)劃審批數(shù)據(jù)在AutoCAD與ArcSDE間互操作的實現(xiàn)

2014-12-07 鄒艷紅 中南大學(xué)有色金屬成礦預(yù)測教育部

  針對規(guī)劃審批數(shù)據(jù)處理后入庫和入庫后再調(diào)用過程中AutoCAD 與ArcSDE 數(shù)據(jù)頻繁轉(zhuǎn)換的問題,基于C#. Net和ObjectArx SDK 工具對AutoCAD 進(jìn)行二次開發(fā),研究了二者實時數(shù)據(jù)轉(zhuǎn)換互操作功能的開發(fā)實現(xiàn)過程。數(shù)據(jù)互操作功能包括取圖和上圖兩個模塊,前者將數(shù)據(jù)從ArcSDE 中加載到AutoCAD 中并編輯,后者將AutoCAD 數(shù)據(jù)通過ArcSDE 保存到關(guān)系數(shù)據(jù)庫中。作為實例研究,兩模塊已經(jīng)整合到岳陽市規(guī)劃審批數(shù)據(jù)處理與輔助入庫系統(tǒng)中,有效地提高了規(guī)劃審批數(shù)據(jù)入庫和查詢調(diào)用的效率。

1、引言

  AutoCAD 具有強(qiáng)大的繪圖功能和矢量圖形處理能力,廣泛應(yīng)用于測繪、規(guī)劃、國土資源等領(lǐng)域,尤其在規(guī)劃行業(yè),基本地形圖、業(yè)務(wù)審批等圖形都是運用Auto-CAD 繪制。但是在規(guī)劃行業(yè)中,規(guī)劃人員在進(jìn)行業(yè)務(wù)審批時,常需要調(diào)用歷史規(guī)劃審批數(shù)據(jù)進(jìn)行對比,雖然CAD 格式數(shù)據(jù)作為空間信息的主要數(shù)據(jù)源,但它在空間數(shù)據(jù)信息的描述和分析功能方面卻存在諸多不足。而規(guī)劃審批及其相關(guān)數(shù)據(jù)具有海量數(shù)據(jù)的特

  征,如果規(guī)劃人員挨個文件去找,將耗費很多的時間,降低了規(guī)劃人員的工作效率。ArcSDE 是ArcGIS與商用關(guān)系型數(shù)據(jù)庫( 如Oracle,Microsoft Sql Server等) 之間專門用于存儲、讀取和檢索空間數(shù)據(jù)的GIS 通道,它采用統(tǒng)一的DBMS 存儲空間數(shù)據(jù)和屬性數(shù)據(jù),在標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫上增加一個空間數(shù)據(jù)管理層,它的基本任務(wù)是作為存儲在RDBMS 中的空間數(shù)據(jù)的GIS 網(wǎng)關(guān)。這種模型省去了空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫之間繁瑣的連接,空間數(shù)據(jù)存取速度較快,同時也有利于保證空間數(shù)據(jù)與屬性數(shù)據(jù)間的完整性。如將規(guī)劃審批數(shù)據(jù)通過ArcSDE 存儲在DBMS 里,而在對數(shù)據(jù)的修改與編輯等方面運用AutoCAD,既可以解決海量規(guī)劃審批數(shù)據(jù)的存儲問題,又可以充分利用AutoCAD便捷的繪圖功能。

  目前CAD 與ArcSDE 數(shù)據(jù)交換的實現(xiàn)方式主要有兩種,一種是借助于中間軟件如FME( Feature Manipulate Engine,空間數(shù)據(jù)操作引擎) 實現(xiàn)轉(zhuǎn)換; 另一種是通過二次開發(fā)實現(xiàn),如基于ArcEngine 的ArcGIS 二次開發(fā),或?qū)AD 做二次開發(fā),如基于C#. Net 和ObjectARX 開發(fā)包的二次開發(fā)來實現(xiàn)數(shù)據(jù)間的轉(zhuǎn)換。第一種方法可以實現(xiàn)空間數(shù)據(jù)以及屬性數(shù)據(jù)的批量無損轉(zhuǎn)換,但操作復(fù)雜,需要利用第三方軟件,適用于專業(yè)數(shù)據(jù)處理人員的使用。第二種方法可以根據(jù)需要靈活定制友好的界面,能更高效、安全地管理空間數(shù)據(jù),方便數(shù)據(jù)的查詢、統(tǒng)計以及空間分析。但是隨著規(guī)劃數(shù)據(jù)管理一站式平臺的開發(fā)與應(yīng)用,規(guī)劃人員對CAD 使用更為頻繁,如何實現(xiàn)實時快捷地從數(shù)據(jù)庫中獲取數(shù)據(jù),同時將處理過的CAD 數(shù)據(jù)通過ArcSDE 存儲在關(guān)系數(shù)據(jù)庫中,對界面功能開發(fā)提出了更高的要求。為此,本文結(jié)合岳陽市規(guī)劃審批數(shù)據(jù)管理實例,選用ArcSDE+SQL Server2008 存儲空間數(shù)據(jù)和屬性數(shù)據(jù),基于AutoCAD 進(jìn)行二次開發(fā),研究了AutoCAD 與ArcSDE間規(guī)劃審批數(shù)據(jù)實時互操作轉(zhuǎn)換的實現(xiàn)過程。

2、AutoCAD 與ArcSDE 數(shù)據(jù)模型的映射關(guān)系

  2.1、AutoCAD 的數(shù)據(jù)模型

  AutoCAD 以圖層( Layer) 來組織圖形數(shù)據(jù),不同類型的圖素,如點、線、多邊形等可以共層,一個dwg 或dxf 文件可以包含多個圖層。它所有實體都存放在塊表中,與實體對應(yīng)的圖層、線型、文字樣式等信息分別存放在層表、線型表、文字樣式表中,屬性數(shù)據(jù)以擴(kuò)展屬性方式存儲在AutoCAD 的圖元對象中。其數(shù)據(jù)模型相對簡單,是以二進(jìn)制方式存儲點線面地理數(shù)據(jù),但只能存儲少量的屬性數(shù)據(jù)。后來的CAD 數(shù)據(jù)模型支持?jǐn)U展屬性功能,但還是不能跨越其存儲量為16 k的限制,而且其存儲模式還是文件存儲模式,這遠(yuǎn)遠(yuǎn)不能滿足當(dāng)前海量數(shù)據(jù)存儲的要求。

  2.2、ArcSDE 數(shù)據(jù)模型

  ArcSDE 用X、Y 坐標(biāo)來表示點、線、面、注記。其用單一的坐標(biāo)表示點,一組有序的坐標(biāo)串表示線,一組起始結(jié)點和終止結(jié)點相同的坐標(biāo)串表示面。它以層的方式來管理地理數(shù)據(jù),具有共同屬性項的一類要素放于一層,每個數(shù)據(jù)庫記錄對應(yīng)一個實際要素。ArcSDE為數(shù)據(jù)庫中每層( Layer) 建立了空間索引( cell) ,它是將層從邏輯上分成一個個小塊。層中的要素則分解到各cell 中加以描述,并將此描述信息寫到索引表中。落到多個cell 上的要素,將在每個cell 對應(yīng)的索引記錄中加以描述。沒有數(shù)據(jù)的cell 不包括在索引表中。其利用將空間數(shù)據(jù)類型加到關(guān)系數(shù)據(jù)庫中的方法來存儲和組織數(shù)據(jù)庫中的空間要素,但不改變和影響現(xiàn)有的數(shù)據(jù)庫或應(yīng)用。

  2.3、二者數(shù)據(jù)模型的映射關(guān)系

  文中通過建立AutoCAD 與ArcSDE 間的映射關(guān)系,如表1 所示,來實現(xiàn)數(shù)據(jù)間的互轉(zhuǎn)換從而達(dá)到數(shù)據(jù)間的互操作。

AutoCAD 與ArcSDE 數(shù)據(jù)模型的映射關(guān)系

表1 AutoCAD 與ArcSDE 數(shù)據(jù)模型的映射關(guān)系

5、結(jié)語

  本文通過對AutoCAD 的二次開發(fā),實現(xiàn)了規(guī)劃審批數(shù)據(jù)在AutoCAD 與ArcSDE 間的互操作,促進(jìn)了CAD 與GIS 在應(yīng)用中的交融,方便了數(shù)據(jù)的存儲和編輯以及用戶操作的習(xí)慣,不但減少了用戶因數(shù)據(jù)轉(zhuǎn)換帶來的編輯工作,使用戶提高了工作效率,還提高了數(shù)據(jù)質(zhì)量與應(yīng)用價值。有待進(jìn)一步提高的是優(yōu)化數(shù)據(jù)結(jié)構(gòu),減少數(shù)據(jù)存儲時間。同時,為了提高數(shù)據(jù)互操作效率,良好的數(shù)據(jù)預(yù)處理工作必不可少。