邱建康
(石獅市恒信房地產評估有限公司,福建石獅 362700)
基于AutoCAD的ArcGIS空間數據庫互操作實現
邱建康?
(石獅市恒信房地產評估有限公司,福建石獅 362700)
通過分析AutoCAD和ArcGIS數據模型,結合各自平臺的二次開發特點,提出了在AutoCAD平臺下在線編輯ArcGIS空間數據庫的設計方案,開發并實現了原型系統。
地理信息系統;空間數據模型;空間數據互操作;AutoCAD;空間數據庫
AutoCAD以其強大的矢量圖形編輯和處理功能著稱,一直以來被很多測繪單位用作地理信息數據前端采集工具,在城市規劃部門、國土資源部門均有廣大的用戶群。同時,隨著地理信息數據庫技術的發展,空間數據的應用處理需求不斷增加[1],CAD數據文件的維護和管理方式難以滿足數據增長速度和更新的需求,并且在空間數據信息的描述和分析功能方面存在諸多不足[2,4]。而ArcGIS以其強大的空間數據處理能力,對空間數據的組織、存儲、管理、分析和應用都提供了良好的解決方案[2]。
為此,不少測繪工作者采用多種手段解決目前兩種數據模型的轉換問題,提出了基于AutoCAD Object-Arx、ArcEngine、DWGDirect等開發組件實現AutoCAD和ArcGIS的數據相互轉換[2,5,6]。然而,這僅僅是解決了目前數據之間轉換入庫的問題,隨著地理信息數據生產的發展和管理需求的變化,離線的轉換并未解決用戶本質的需求。所以,筆者提出將AutoCAD作為ArcGIS的在線編輯前端,直接操作空間數據庫,實現兩者之間數據的在線互操作,從而解決用戶在生產和管理的軟件功能需求,充分發揮AuotCAD和ArcGIS在空間數據生產和管理方面各自的優勢。
地理信息互操作是指地理信息系統在地理數據庫之間能夠自由交換描述各種地理現象和對象特征,并能相互調用功能程序,共同合作以實現用戶的應用需求。實現AutoCAD與ArcGIS的互操作,首先需要建立兩者空間數據模型的映射關系,然后通過二者提供的二次開發語言設計實現從AutoCAD環境中在線編輯ArcGIS GeoDataBase空間數據。
AutoCAD的圖形數據文件利用點、線、面等幾何要素,結合實體(Entity)的圖層、顏色、線型、線寬、塊符號等靜態圖形特征來表示地理要素(Feature),并依靠注記和擴展數據(XData)的方式來記錄屬性數據的描述。而在ArcGIS中采用面向對象的管理關系數據庫的方式存儲管理空間數據,矢量數據以點、線、面、注記對象的形式記錄地物要素。兩者之間的數據模型映射關系[3~5]如表1所示。

AutoCAD與ArcGIS空間數據模型的映射關系 表1
3.1 二次開發方式選型
AutoCAD提供的二次開發方式有 AutoLisp、ObjectArx、ObjectArx.Net等幾種方式,ArcGIS提供了ArcEngine GIS COM組件,可以采用VB、VB.Net、C++、C#等多種語言開發,同時ArcGIS還提供了ArcSDE CAD Client。筆者采用AutoCAD ObjectArx.Net和ArcEngine for.Net SDK,主要是因為ObjectArx.Net開發能力不斷增強,幾乎可與ObjectArx達到相同能力,而ArcEngine對GeoDataBase的訪問控制要比ArcSDE CAD Client封裝的更好,并且兩者基于統一的開發語言 VisualStudio 2008 C#,能夠有效減少代碼維護復雜性,更有利于快速開發和實現。
空間數據庫的互操作的實現方式有基于直接訪問模式和基于公共接口訪問模式兩種互操作方法。本文采用基于直接訪問模式,在AutoCAD環境下通過ArcEngine、ObjectArx.Net訪問GeoDataBase空間數據模型。系統架構邏輯如圖1所示。

圖1 系統結構邏輯圖
4.1 設計方案
空間數據互操作流程如圖2所示:利用AutoCAD作為ArcGIS空間數據的前端編輯工具,首先從ArcGIS GeoDataBase空間數據庫中提取簽出地理信息數據,通過兩者空間數據模型的映射關系,在AutoCAD內存中構建相應的空間數據模型,即AutoCAD Dwg文件,文件中包含空間數據和簽出對象的關系表。用戶通過AutoCAD的編輯工具編輯空間對象時,觸發編輯事件,將編輯操作記錄到簽出關系表中。在AutoCAD保存事件中進行編輯內容的提交,并將修改對象更新到GeoDataBase中,從而在AutoCAD中實現空間數據的在線編輯互操作。

圖2 空間數據互操作流程圖
其中,AutoCAD Dwg文件中采用圖3所示方式保存空間數據和簽出對象關系表。圖2中讀取映射模塊、更新保存模塊和CheckOut關系表分別對應著圖3中的3個雙向箭頭指示的內容,圖2中CheckOut關系表就是圖3中的Objects CheckOut Relations。兩個空間數據模型的互操作按照圖3中AutoCAD Dwg文件和GeoDataBase空間對象的映射關系來實現。

圖3 DWG文件與GeoDataBase空間數據模型的邏輯結構及對應關系
DWG文件和GeoDataBase空間數據模型的映射關系如圖3所示,圖3中左邊是AutoCAD DWG文件的數據模型,右邊是GeoDataBase空間數據模型。DWG文件數據模型中包括:Block Table(塊表)、Entity(實體)、Extension Dictionary(擴展詞典)、Named Object Dictionary (命名對象詞典),Block Table包含Entity對象集合,Entity下面包含著Extension Dictionary集合,Extension Dictionary存放屬性記錄,Named Object Dictionary存放表名和表的結構。GeoDataBase空間數據模型中包括:Feature Class(地物要素類)、Feature(地物要素)、Attributes (屬性數據)、和對象修改表(A表、D表)。
空間數據模型對應關系主要是3個雙向箭頭,分別是:①Feature(地物要素)對應Entity(實體);②Attributes(屬性數據)對應Extension Dictionary(擴展詞典)和Named Object Dictionary(命名對象詞典)中的屬性表結構;③簽出對象A表(記錄增加對象)、D表(記錄刪除對象)對應Named Object Dictionary(命名對象詞典)中的Objects CheckOut Relation(簽出對象關系表)[7,8]。
4.2 系統的實現
AutoCAD前端編輯系統采用Visual Studio 2008 C#語言開發,使用 ArcEngine中GeoDataBase組件中的WorkSpace、FeatureClass、Feature等接口類操作空間數據表,使用ObjectArx.Net開發包中的Autodesk.Auto-CAD.DatabaseServices類庫,BlockTable、Entity、DBDictionary對象類實現操作圖形數據表。
編輯操作時維護簽出對象關系表的代碼片段:


開發的互操作程序加載到AutoCAD中如圖4中左圖所示,在AutoCAD中打開ArcGIS GeoDataBase文件,AutoCAD通過映射模塊將空間數據讀取到DWG文件中,添加一個魚塘地物要素(窗口中間紅色對象)并保存。為了驗證編輯的結果是否保存到了GeoData-Base文件中,通過ArcMap打開此文件查看結果(圖4右圖ArcMap界面 ),可以看出AutoCAD已經將新建的魚塘地物要素(窗口中間藍色對象)添加到GeoData-Base空間數據庫中,實現了用戶在AutoCAD軟件下在線編輯操作ArcGIS空間數據庫內容。

圖4 AutoCAD互操作實現界面和ArcMap驗證操作結果
本文實現了在AutoCAD環境下在線編輯互操作ArcGIS GeoDataBase空間數據庫,發揮了兩個軟件在空間數據生產和管理方面的優勢,滿足了用戶使用習慣,不但減少了用戶因數據轉換帶來的編輯工作量,而且提高了數據質量。不過,在AutoCAD下地物要素符號的表達,組合對象的復雜線狀地物要素在兩個空間數據模型的轉換等方面還存在著一些問題,有待進一步研究解決。
[1]龔健雅.地理信息系統基礎[M].北京:科學出版社,2001
[2]馬立廣,張亮.AutoCAD環境下Geodatabase數據轉換與可視化操作實現[J].測繪科學第33卷第5期,2008.9
[3]高洪俊.AutoCAD圖形數據向ArcGIS轉換關鍵技術的研究[J].城市勘測2006(6)
[4]陳能,施蓓琦.AutoCAD地形圖數據轉換為GIS空間數據的技術研究與應用[J].測繪通報,2005(8)
[5]申勝利,李華.基于ArcEngine的ArcGIS與AutoCAD數據轉換研究[J].測繪通報,2007(2)
[6]孫炎,羅曉沛.基于DWGDirect實現AutoCAD與ArcGIS的數據交換[J].計算機工程與設計,2009,30(7)
[7]Autodesk.AutoCAD ObjectARX Developer's Guide.Autodesk Inc,2009
[8]ESRI developer help for ArcGIS 9.3,ESRI Company,USA,2009
Implementing Interoperability of ArcGIS Geodatabase Based on AutoCAD
Qiu JianKang
(ShiShi HengXin Real Estate Appraisal Co.,Ltd.Quanzhou 430223,China)
This paper analyses the data model of AutoCAD and ArcGIS,compares with theirs advantage of development method,puts forward a solution of editing ArcGIS Geodatabase with in AutoCAD online,and develops the prototype system.
Geography information system;spatial database model;geospatial interoperability;AutoCAD;geospatial database
1672-8262(2010)05-54-03
P208
B
2009—12—07
邱建康(1969—),男,助理工程師,主要從事地理信息應用工程的研發工作。