規(guī)劃審批數據在AutoCAD與ArcSDE間互操作的實現

2014-12-07 鄒艷紅 中南大學有色金屬成礦預測教育部

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

1、引言

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

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

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

2、AutoCAD 與ArcSDE 數據模型的映射關系

  2.1、AutoCAD 的數據模型

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

  2.2、ArcSDE 數據模型

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

  2.3、二者數據模型的映射關系

  文中通過建立AutoCAD 與ArcSDE 間的映射關系,如表1 所示,來實現數據間的互轉換從而達到數據間的互操作。

AutoCAD 與ArcSDE 數據模型的映射關系

表1 AutoCAD 與ArcSDE 數據模型的映射關系

5、結語

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