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

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