邱建康
(石獅市恒信房地產(chǎn)評(píng)估有限公司,福建石獅 362700)
基于AutoCAD的ArcGIS空間數(shù)據(jù)庫(kù)互操作實(shí)現(xiàn)
邱建康?
(石獅市恒信房地產(chǎn)評(píng)估有限公司,福建石獅 362700)
通過(guò)分析AutoCAD和ArcGIS數(shù)據(jù)模型,結(jié)合各自平臺(tái)的二次開(kāi)發(fā)特點(diǎn),提出了在AutoCAD平臺(tái)下在線編輯ArcGIS空間數(shù)據(jù)庫(kù)的設(shè)計(jì)方案,開(kāi)發(fā)并實(shí)現(xiàn)了原型系統(tǒng)。
地理信息系統(tǒng);空間數(shù)據(jù)模型;空間數(shù)據(jù)互操作;AutoCAD;空間數(shù)據(jù)庫(kù)
AutoCAD以其強(qiáng)大的矢量圖形編輯和處理功能著稱(chēng),一直以來(lái)被很多測(cè)繪單位用作地理信息數(shù)據(jù)前端采集工具,在城市規(guī)劃部門(mén)、國(guó)土資源部門(mén)均有廣大的用戶群。同時(shí),隨著地理信息數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,空間數(shù)據(jù)的應(yīng)用處理需求不斷增加[1],CAD數(shù)據(jù)文件的維護(hù)和管理方式難以滿足數(shù)據(jù)增長(zhǎng)速度和更新的需求,并且在空間數(shù)據(jù)信息的描述和分析功能方面存在諸多不足[2,4]。而ArcGIS以其強(qiáng)大的空間數(shù)據(jù)處理能力,對(duì)空間數(shù)據(jù)的組織、存儲(chǔ)、管理、分析和應(yīng)用都提供了良好的解決方案[2]。
為此,不少測(cè)繪工作者采用多種手段解決目前兩種數(shù)據(jù)模型的轉(zhuǎn)換問(wèn)題,提出了基于AutoCAD Object-Arx、ArcEngine、DWGDirect等開(kāi)發(fā)組件實(shí)現(xiàn)AutoCAD和ArcGIS的數(shù)據(jù)相互轉(zhuǎn)換[2,5,6]。然而,這僅僅是解決了目前數(shù)據(jù)之間轉(zhuǎn)換入庫(kù)的問(wèn)題,隨著地理信息數(shù)據(jù)生產(chǎn)的發(fā)展和管理需求的變化,離線的轉(zhuǎn)換并未解決用戶本質(zhì)的需求。所以,筆者提出將AutoCAD作為ArcGIS的在線編輯前端,直接操作空間數(shù)據(jù)庫(kù),實(shí)現(xiàn)兩者之間數(shù)據(jù)的在線互操作,從而解決用戶在生產(chǎn)和管理的軟件功能需求,充分發(fā)揮AuotCAD和ArcGIS在空間數(shù)據(jù)生產(chǎn)和管理方面各自的優(yōu)勢(shì)。
地理信息互操作是指地理信息系統(tǒng)在地理數(shù)據(jù)庫(kù)之間能夠自由交換描述各種地理現(xiàn)象和對(duì)象特征,并能相互調(diào)用功能程序,共同合作以實(shí)現(xiàn)用戶的應(yīng)用需求。實(shí)現(xiàn)AutoCAD與ArcGIS的互操作,首先需要建立兩者空間數(shù)據(jù)模型的映射關(guān)系,然后通過(guò)二者提供的二次開(kāi)發(fā)語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)從AutoCAD環(huán)境中在線編輯ArcGIS GeoDataBase空間數(shù)據(jù)。
AutoCAD的圖形數(shù)據(jù)文件利用點(diǎn)、線、面等幾何要素,結(jié)合實(shí)體(Entity)的圖層、顏色、線型、線寬、塊符號(hào)等靜態(tài)圖形特征來(lái)表示地理要素(Feature),并依靠注記和擴(kuò)展數(shù)據(jù)(XData)的方式來(lái)記錄屬性數(shù)據(jù)的描述。而在ArcGIS中采用面向?qū)ο蟮墓芾黻P(guān)系數(shù)據(jù)庫(kù)的方式存儲(chǔ)管理空間數(shù)據(jù),矢量數(shù)據(jù)以點(diǎn)、線、面、注記對(duì)象的形式記錄地物要素。兩者之間的數(shù)據(jù)模型映射關(guān)系[3~5]如表1所示。
AutoCAD與ArcGIS空間數(shù)據(jù)模型的映射關(guān)系 表1
3.1 二次開(kāi)發(fā)方式選型
AutoCAD提供的二次開(kāi)發(fā)方式有 AutoLisp、ObjectArx、ObjectArx.Net等幾種方式,ArcGIS提供了ArcEngine GIS COM組件,可以采用VB、VB.Net、C++、C#等多種語(yǔ)言開(kāi)發(fā),同時(shí)ArcGIS還提供了ArcSDE CAD Client。筆者采用AutoCAD ObjectArx.Net和ArcEngine for.Net SDK,主要是因?yàn)镺bjectArx.Net開(kāi)發(fā)能力不斷增強(qiáng),幾乎可與ObjectArx達(dá)到相同能力,而ArcEngine對(duì)GeoDataBase的訪問(wèn)控制要比ArcSDE CAD Client封裝的更好,并且兩者基于統(tǒng)一的開(kāi)發(fā)語(yǔ)言 VisualStudio 2008 C#,能夠有效減少代碼維護(hù)復(fù)雜性,更有利于快速開(kāi)發(fā)和實(shí)現(xiàn)。
空間數(shù)據(jù)庫(kù)的互操作的實(shí)現(xiàn)方式有基于直接訪問(wèn)模式和基于公共接口訪問(wèn)模式兩種互操作方法。本文采用基于直接訪問(wèn)模式,在AutoCAD環(huán)境下通過(guò)ArcEngine、ObjectArx.Net訪問(wèn)GeoDataBase空間數(shù)據(jù)模型。系統(tǒng)架構(gòu)邏輯如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)邏輯圖
4.1 設(shè)計(jì)方案
空間數(shù)據(jù)互操作流程如圖2所示:利用AutoCAD作為ArcGIS空間數(shù)據(jù)的前端編輯工具,首先從ArcGIS GeoDataBase空間數(shù)據(jù)庫(kù)中提取簽出地理信息數(shù)據(jù),通過(guò)兩者空間數(shù)據(jù)模型的映射關(guān)系,在AutoCAD內(nèi)存中構(gòu)建相應(yīng)的空間數(shù)據(jù)模型,即AutoCAD Dwg文件,文件中包含空間數(shù)據(jù)和簽出對(duì)象的關(guān)系表。用戶通過(guò)AutoCAD的編輯工具編輯空間對(duì)象時(shí),觸發(fā)編輯事件,將編輯操作記錄到簽出關(guān)系表中。在AutoCAD保存事件中進(jìn)行編輯內(nèi)容的提交,并將修改對(duì)象更新到GeoDataBase中,從而在AutoCAD中實(shí)現(xiàn)空間數(shù)據(jù)的在線編輯互操作。
圖2 空間數(shù)據(jù)互操作流程圖
其中,AutoCAD Dwg文件中采用圖3所示方式保存空間數(shù)據(jù)和簽出對(duì)象關(guān)系表。圖2中讀取映射模塊、更新保存模塊和CheckOut關(guān)系表分別對(duì)應(yīng)著圖3中的3個(gè)雙向箭頭指示的內(nèi)容,圖2中CheckOut關(guān)系表就是圖3中的Objects CheckOut Relations。兩個(gè)空間數(shù)據(jù)模型的互操作按照?qǐng)D3中AutoCAD Dwg文件和GeoDataBase空間對(duì)象的映射關(guān)系來(lái)實(shí)現(xiàn)。
圖3 DWG文件與GeoDataBase空間數(shù)據(jù)模型的邏輯結(jié)構(gòu)及對(duì)應(yīng)關(guān)系
DWG文件和GeoDataBase空間數(shù)據(jù)模型的映射關(guān)系如圖3所示,圖3中左邊是AutoCAD DWG文件的數(shù)據(jù)模型,右邊是GeoDataBase空間數(shù)據(jù)模型。DWG文件數(shù)據(jù)模型中包括:Block Table(塊表)、Entity(實(shí)體)、Extension Dictionary(擴(kuò)展詞典)、Named Object Dictionary (命名對(duì)象詞典),Block Table包含Entity對(duì)象集合,Entity下面包含著Extension Dictionary集合,Extension Dictionary存放屬性記錄,Named Object Dictionary存放表名和表的結(jié)構(gòu)。GeoDataBase空間數(shù)據(jù)模型中包括:Feature Class(地物要素類(lèi))、Feature(地物要素)、Attributes (屬性數(shù)據(jù))、和對(duì)象修改表(A表、D表)。
空間數(shù)據(jù)模型對(duì)應(yīng)關(guān)系主要是3個(gè)雙向箭頭,分別是:①Feature(地物要素)對(duì)應(yīng)Entity(實(shí)體);②Attributes(屬性數(shù)據(jù))對(duì)應(yīng)Extension Dictionary(擴(kuò)展詞典)和Named Object Dictionary(命名對(duì)象詞典)中的屬性表結(jié)構(gòu);③簽出對(duì)象A表(記錄增加對(duì)象)、D表(記錄刪除對(duì)象)對(duì)應(yīng)Named Object Dictionary(命名對(duì)象詞典)中的Objects CheckOut Relation(簽出對(duì)象關(guān)系表)[7,8]。
4.2 系統(tǒng)的實(shí)現(xiàn)
AutoCAD前端編輯系統(tǒng)采用Visual Studio 2008 C#語(yǔ)言開(kāi)發(fā),使用 ArcEngine中GeoDataBase組件中的WorkSpace、FeatureClass、Feature等接口類(lèi)操作空間數(shù)據(jù)表,使用ObjectArx.Net開(kāi)發(fā)包中的Autodesk.Auto-CAD.DatabaseServices類(lèi)庫(kù),BlockTable、Entity、DBDictionary對(duì)象類(lèi)實(shí)現(xiàn)操作圖形數(shù)據(jù)表。
編輯操作時(shí)維護(hù)簽出對(duì)象關(guān)系表的代碼片段:
開(kāi)發(fā)的互操作程序加載到AutoCAD中如圖4中左圖所示,在AutoCAD中打開(kāi)ArcGIS GeoDataBase文件,AutoCAD通過(guò)映射模塊將空間數(shù)據(jù)讀取到DWG文件中,添加一個(gè)魚(yú)塘地物要素(窗口中間紅色對(duì)象)并保存。為了驗(yàn)證編輯的結(jié)果是否保存到了GeoData-Base文件中,通過(guò)ArcMap打開(kāi)此文件查看結(jié)果(圖4右圖ArcMap界面 ),可以看出AutoCAD已經(jīng)將新建的魚(yú)塘地物要素(窗口中間藍(lán)色對(duì)象)添加到GeoData-Base空間數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)了用戶在AutoCAD軟件下在線編輯操作ArcGIS空間數(shù)據(jù)庫(kù)內(nèi)容。
圖4 AutoCAD互操作實(shí)現(xiàn)界面和ArcMap驗(yàn)證操作結(jié)果
本文實(shí)現(xiàn)了在AutoCAD環(huán)境下在線編輯互操作ArcGIS GeoDataBase空間數(shù)據(jù)庫(kù),發(fā)揮了兩個(gè)軟件在空間數(shù)據(jù)生產(chǎn)和管理方面的優(yōu)勢(shì),滿足了用戶使用習(xí)慣,不但減少了用戶因數(shù)據(jù)轉(zhuǎn)換帶來(lái)的編輯工作量,而且提高了數(shù)據(jù)質(zhì)量。不過(guò),在AutoCAD下地物要素符號(hào)的表達(dá),組合對(duì)象的復(fù)雜線狀地物要素在兩個(gè)空間數(shù)據(jù)模型的轉(zhuǎn)換等方面還存在著一些問(wèn)題,有待進(jìn)一步研究解決。
[1]龔健雅.地理信息系統(tǒng)基礎(chǔ)[M].北京:科學(xué)出版社,2001
[2]馬立廣,張亮.AutoCAD環(huán)境下Geodatabase數(shù)據(jù)轉(zhuǎn)換與可視化操作實(shí)現(xiàn)[J].測(cè)繪科學(xué)第33卷第5期,2008.9
[3]高洪俊.AutoCAD圖形數(shù)據(jù)向ArcGIS轉(zhuǎn)換關(guān)鍵技術(shù)的研究[J].城市勘測(cè)2006(6)
[4]陳能,施蓓琦.AutoCAD地形圖數(shù)據(jù)轉(zhuǎn)換為GIS空間數(shù)據(jù)的技術(shù)研究與應(yīng)用[J].測(cè)繪通報(bào),2005(8)
[5]申勝利,李華.基于ArcEngine的ArcGIS與AutoCAD數(shù)據(jù)轉(zhuǎn)換研究[J].測(cè)繪通報(bào),2007(2)
[6]孫炎,羅曉沛.基于DWGDirect實(shí)現(xiàn)AutoCAD與ArcGIS的數(shù)據(jù)交換[J].計(jì)算機(jī)工程與設(shè)計(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—),男,助理工程師,主要從事地理信息應(yīng)用工程的研發(fā)工作。