規(guī)劃審批數(shù)據(jù)在AutoCAD與ArcSDE間互操作的實(shí)現(xiàn)
針對(duì)規(guī)劃審批數(shù)據(jù)處理后入庫(kù)和入庫(kù)后再調(diào)用過程中AutoCAD 與ArcSDE 數(shù)據(jù)頻繁轉(zhuǎn)換的問題,基于C#. Net和ObjectArx SDK 工具對(duì)AutoCAD 進(jìn)行二次開發(fā),研究了二者實(shí)時(shí)數(shù)據(jù)轉(zhuǎn)換互操作功能的開發(fā)實(shí)現(xiàn)過程。數(shù)據(jù)互操作功能包括取圖和上圖兩個(gè)模塊,前者將數(shù)據(jù)從ArcSDE 中加載到AutoCAD 中并編輯,后者將AutoCAD 數(shù)據(jù)通過ArcSDE 保存到關(guān)系數(shù)據(jù)庫(kù)中。作為實(shí)例研究,兩模塊已經(jīng)整合到岳陽(yáng)市規(guī)劃審批數(shù)據(jù)處理與輔助入庫(kù)系統(tǒng)中,有效地提高了規(guī)劃審批數(shù)據(jù)入庫(kù)和查詢調(diào)用的效率。
1、引言
AutoCAD 具有強(qiáng)大的繪圖功能和矢量圖形處理能力,廣泛應(yīng)用于測(cè)繪、規(guī)劃、國(guó)土資源等領(lǐng)域,尤其在規(guī)劃行業(yè),基本地形圖、業(yè)務(wù)審批等圖形都是運(yùn)用Auto-CAD 繪制。但是在規(guī)劃行業(yè)中,規(guī)劃人員在進(jìn)行業(yè)務(wù)審批時(shí),常需要調(diào)用歷史規(guī)劃審批數(shù)據(jù)進(jìn)行對(duì)比,雖然CAD 格式數(shù)據(jù)作為空間信息的主要數(shù)據(jù)源,但它在空間數(shù)據(jù)信息的描述和分析功能方面卻存在諸多不足。而規(guī)劃審批及其相關(guān)數(shù)據(jù)具有海量數(shù)據(jù)的特
征,如果規(guī)劃人員挨個(gè)文件去找,將耗費(fèi)很多的時(shí)間,降低了規(guī)劃人員的工作效率。ArcSDE 是ArcGIS與商用關(guān)系型數(shù)據(jù)庫(kù)( 如Oracle,Microsoft Sql Server等) 之間專門用于存儲(chǔ)、讀取和檢索空間數(shù)據(jù)的GIS 通道,它采用統(tǒng)一的DBMS 存儲(chǔ)空間數(shù)據(jù)和屬性數(shù)據(jù),在標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫(kù)上增加一個(gè)空間數(shù)據(jù)管理層,它的基本任務(wù)是作為存儲(chǔ)在RDBMS 中的空間數(shù)據(jù)的GIS 網(wǎng)關(guān)。這種模型省去了空間數(shù)據(jù)庫(kù)和屬性數(shù)據(jù)庫(kù)之間繁瑣的連接,空間數(shù)據(jù)存取速度較快,同時(shí)也有利于保證空間數(shù)據(jù)與屬性數(shù)據(jù)間的完整性。如將規(guī)劃審批數(shù)據(jù)通過ArcSDE 存儲(chǔ)在DBMS 里,而在對(duì)數(shù)據(jù)的修改與編輯等方面運(yùn)用AutoCAD,既可以解決海量規(guī)劃審批數(shù)據(jù)的存儲(chǔ)問題,又可以充分利用AutoCAD便捷的繪圖功能。
目前CAD 與ArcSDE 數(shù)據(jù)交換的實(shí)現(xiàn)方式主要有兩種,一種是借助于中間軟件如FME( Feature Manipulate Engine,空間數(shù)據(jù)操作引擎) 實(shí)現(xiàn)轉(zhuǎn)換; 另一種是通過二次開發(fā)實(shí)現(xiàn),如基于ArcEngine 的ArcGIS 二次開發(fā),或?qū)AD 做二次開發(fā),如基于C#. Net 和ObjectARX 開發(fā)包的二次開發(fā)來(lái)實(shí)現(xiàn)數(shù)據(jù)間的轉(zhuǎn)換。第一種方法可以實(shí)現(xiàn)空間數(shù)據(jù)以及屬性數(shù)據(jù)的批量無(wú)損轉(zhuǎn)換,但操作復(fù)雜,需要利用第三方軟件,適用于專業(yè)數(shù)據(jù)處理人員的使用。第二種方法可以根據(jù)需要靈活定制友好的界面,能更高效、安全地管理空間數(shù)據(jù),方便數(shù)據(jù)的查詢、統(tǒng)計(jì)以及空間分析。但是隨著規(guī)劃數(shù)據(jù)管理一站式平臺(tái)的開發(fā)與應(yīng)用,規(guī)劃人員對(duì)CAD 使用更為頻繁,如何實(shí)現(xiàn)實(shí)時(shí)快捷地從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),同時(shí)將處理過的CAD 數(shù)據(jù)通過ArcSDE 存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中,對(duì)界面功能開發(fā)提出了更高的要求。為此,本文結(jié)合岳陽(yáng)市規(guī)劃審批數(shù)據(jù)管理實(shí)例,選用ArcSDE+SQL Server2008 存儲(chǔ)空間數(shù)據(jù)和屬性數(shù)據(jù),基于AutoCAD 進(jìn)行二次開發(fā),研究了AutoCAD 與ArcSDE間規(guī)劃審批數(shù)據(jù)實(shí)時(shí)互操作轉(zhuǎn)換的實(shí)現(xiàn)過程。
2、AutoCAD 與ArcSDE 數(shù)據(jù)模型的映射關(guān)系
2.1、AutoCAD 的數(shù)據(jù)模型
AutoCAD 以圖層( Layer) 來(lái)組織圖形數(shù)據(jù),不同類型的圖素,如點(diǎn)、線、多邊形等可以共層,一個(gè)dwg 或dxf 文件可以包含多個(gè)圖層。它所有實(shí)體都存放在塊表中,與實(shí)體對(duì)應(yīng)的圖層、線型、文字樣式等信息分別存放在層表、線型表、文字樣式表中,屬性數(shù)據(jù)以擴(kuò)展屬性方式存儲(chǔ)在AutoCAD 的圖元對(duì)象中。其數(shù)據(jù)模型相對(duì)簡(jiǎn)單,是以二進(jìn)制方式存儲(chǔ)點(diǎn)線面地理數(shù)據(jù),但只能存儲(chǔ)少量的屬性數(shù)據(jù)。后來(lái)的CAD 數(shù)據(jù)模型支持?jǐn)U展屬性功能,但還是不能跨越其存儲(chǔ)量為16 k的限制,而且其存儲(chǔ)模式還是文件存儲(chǔ)模式,這遠(yuǎn)遠(yuǎn)不能滿足當(dāng)前海量數(shù)據(jù)存儲(chǔ)的要求。
2.2、ArcSDE 數(shù)據(jù)模型
ArcSDE 用X、Y 坐標(biāo)來(lái)表示點(diǎn)、線、面、注記。其用單一的坐標(biāo)表示點(diǎn),一組有序的坐標(biāo)串表示線,一組起始結(jié)點(diǎn)和終止結(jié)點(diǎn)相同的坐標(biāo)串表示面。它以層的方式來(lái)管理地理數(shù)據(jù),具有共同屬性項(xiàng)的一類要素放于一層,每個(gè)數(shù)據(jù)庫(kù)記錄對(duì)應(yīng)一個(gè)實(shí)際要素。ArcSDE為數(shù)據(jù)庫(kù)中每層( Layer) 建立了空間索引( cell) ,它是將層從邏輯上分成一個(gè)個(gè)小塊。層中的要素則分解到各cell 中加以描述,并將此描述信息寫到索引表中。落到多個(gè)cell 上的要素,將在每個(gè)cell 對(duì)應(yīng)的索引記錄中加以描述。沒有數(shù)據(jù)的cell 不包括在索引表中。其利用將空間數(shù)據(jù)類型加到關(guān)系數(shù)據(jù)庫(kù)中的方法來(lái)存儲(chǔ)和組織數(shù)據(jù)庫(kù)中的空間要素,但不改變和影響現(xiàn)有的數(shù)據(jù)庫(kù)或應(yīng)用。
2.3、二者數(shù)據(jù)模型的映射關(guān)系
文中通過建立AutoCAD 與ArcSDE 間的映射關(guān)系,如表1 所示,來(lái)實(shí)現(xiàn)數(shù)據(jù)間的互轉(zhuǎn)換從而達(dá)到數(shù)據(jù)間的互操作。
表1 AutoCAD 與ArcSDE 數(shù)據(jù)模型的映射關(guān)系
5、結(jié)語(yǔ)
本文通過對(duì)AutoCAD 的二次開發(fā),實(shí)現(xiàn)了規(guī)劃審批數(shù)據(jù)在AutoCAD 與ArcSDE 間的互操作,促進(jìn)了CAD 與GIS 在應(yīng)用中的交融,方便了數(shù)據(jù)的存儲(chǔ)和編輯以及用戶操作的習(xí)慣,不但減少了用戶因數(shù)據(jù)轉(zhuǎn)換帶來(lái)的編輯工作,使用戶提高了工作效率,還提高了數(shù)據(jù)質(zhì)量與應(yīng)用價(jià)值。有待進(jìn)一步提高的是優(yōu)化數(shù)據(jù)結(jié)構(gòu),減少數(shù)據(jù)存儲(chǔ)時(shí)間。同時(shí),為了提高數(shù)據(jù)互操作效率,良好的數(shù)據(jù)預(yù)處理工作必不可少。