王 閃,彭清山,程 琦,周 亮,高能攀
(武漢市測繪研究院,湖北武漢 430022)
隨著計算機、網絡、數據庫等技術的更新,GIS技術的發展呈現出新的特點和趨勢,應用領域得到大幅拓寬,基于互聯網的WebGIS就是其中之一。WebGIS[1]將 Internet和 GIS 技術結合在一起,以互聯網為環境,把Web頁面作為GIS軟件的用戶界面,可在計算機網絡上實現地理數據的顯示、瀏覽、查詢、分析、輔助決策等功能[2]。WebGIS使用B/S架構,具有建設成本低、維護更新便捷、保密性能好等諸多優勢,從而在工程勘測、設計和規劃數據管理工作中得到廣泛應用。構建WebGIS的軟件種類繁多。其中,美國Esri公司的ArcGIS Server系列產品是目前我國市場上應用最為廣泛的WebGIS平臺,已成功應用于大量企業級GIS應用與服務系統的構建[3]。
AutoCAD是美國Autodesk公司于1982年開發的自動計算機輔助設計軟件,現已經成為國際上廣為流行的圖形設計工具。AutoCAD在圖形數據的采集和編輯方面擁有強大的功能,使其在測繪、國土、城市規劃等領域得到了廣泛應用[4]。AutoCAD最初開發的目的是為了滿足機械、建筑等設計方面的需求,導致其在地圖和地理信息的管理方面存在著諸多先天性的不足(如屬性數據管理不便、沒有嚴格的拓撲關系、空間分析難以實現),但是其在制圖表現形式、繪制方式等方面卻有著常規GIS系統無法比擬的強大優勢[5-6]。因此,很多地理信息的數據采集、編輯工作使用AutoCAD完成。
隨著WebGIS在工程設計、規劃數據管理等領域應用的不斷深入,設計人員常常需要將使用Auto-CAD系統生成的圖形數據與WebGIS系統發布的地圖進行疊加分析,以方便設計人員比較圖形數據與地圖底圖兩者在空間位置、大小上的差異,從而及時發現設計、規劃數據的問題[7-8]。通常在C/S架構下客戶端直接將AutoCAD矢量數據讀取導入到ArcGIS平臺并配以指定的空間參考即可實現數據疊加。但是B/S架構下客戶端為瀏覽器,無法直接讀取AutoCAD矢量數據[9-10]。因此,很少有WebGIS系統提供AutoCAD矢量數據的實時疊加功能,從而制約了疊加分析的實時性和效率,限制了WebGIS系統的應用范圍。本文提出基于WebGIS平臺,通過Auto-CAD矢量數據的實時發布,快速直觀地實現了圖形數據與GIS數據的在線疊加分析,提高了工作效率。
為了實現將AutoCAD矢量數據與WebGIS系統發布的地圖服務進行圖形疊加,需要將AutoCAD圖形文件從客戶端上傳至服務器,由服務器來負責讀取并轉換為MapService發布。本文采用方法是將AutoCAD矢量數據上傳至ArcGIS Server服務器,服務器端讀取數據并添加到MXD文檔中,然后將該MXD文檔發布為一個MapService。
整個AutoCAD矢量數據的發布流程為“圖形文件上傳→ArcObjects讀取圖形文件→賦予空間參考→使用MXD文檔發布地圖服務”4步。
1)客戶端選擇需要與WebGIS系統所發布的地圖服務進行圖形疊加顯示的AutoCAD圖形文件,系統通過實現文件上傳功能的Web Service,將該文件上傳至用以完成MapService服務發布的ArcGIS Server。
2)服務器新建一個空白的MXD文檔后,使用ArcObjects將該AutoCAD圖形文件整體作為一個CadLayer讀取,或將AutoCAD圖形文件中的要素分為點、線、面、注記等類分層作為FeatureLayer讀取。
3)對于讀取后的CadLayer(或FeatureLayer),賦予WebGIS系統發布的地圖服務所使用的空間參考,將圖層添加到MXD文檔并保存。
4)使用服務器上擁有發布MapService權限的用戶標識連接到ArcGIS Server后,新建一個MapS-ervice并對其進行必要的服務配置后,將MXD文檔路徑賦予該MapService并添加到該服務器后完成服務發布。客戶端即可通過發布的 MapService和WebGIS系統所發布的地圖服務進行疊加顯示。
詳細流程圖如圖1所示。

圖1 AutoCAD矢量數據發布流程
由于WebGIS系統采用的是B/S 3層架構,用戶使用的客戶端是瀏覽器,無法使用ArcObjects來完成AutoCAD矢量數據的讀取。因此,需要將圖形數據傳輸至用以發布MapService的服務器。
客戶端負責讀取需要發布的AutoCAD文件并將其變為字節流后,再將這些字節流按照一定的大小分批次地上傳至服務器;服務器端新建一個空文件,將這些字節流按照順序追加至此文件,最終完成文件上傳功能。實現客戶端讀取AutoCAD文件的程序代碼為:

ArcGIS Server不能直接將AutoCAD矢量數據發布為 MapService,因此需要使用 ArcObjects將AutoCAD矢量數據讀取到CadLayer(或FeatureLayer)中,賦予特定的空間參考并添加至MXD文檔中。利用ArcObjects讀取AutoCAD矢量數據并賦予北京1954坐標系的空間參考的代碼為:

將AutoCAD矢量數據讀取并保存MXD文檔后,需要通過ArcGIS Server將MXD文檔進行發布,客戶端才能通過加載該MapService與WebGIS系統所發布的地圖服務進行疊加比較。以下代碼段將MXD文檔發布為MapService:


筆者以所在單位基于ArcGIS Server開發的“勘測成果一張圖”系統為WebGIS平臺,實現了實時發布AutoCAD矢量數據,完成了“AutoCAD圖形文件上傳→ArcObjects讀取圖形文件→賦予空間參考→使用MXD文檔發布地圖服務”一整套處理流程。
該系統運行在筆者所在單位的百兆局域網上,ArcGIS Server服務器使用Intel Xeon E5640至強處理器、4 GB內存、250 GB硬盤,操作系統為 Windows 2003 Server;客戶端使用Intel P4 2.40 GHz處理器,1 GB內存、120 GB硬盤,操作系統為 Windows XP SP3。經多次測試,實現一個文件大小約1 MB、比例尺為1∶2000的全要素AutoCAD矢量數據從開始上傳到最終發布疊加,所需時間少于10 s。由于能夠快速地完成AutoCAD矢量數據實時發布,該功能在日常工作中得到了廣泛的使用,極大地方便了工作人員對AutoCAD矢量數據與地圖底圖進行對比檢查。疊加效果如圖2所示(后端的地圖為“勘測成果一張圖”系統發布的地圖底圖,前端為需要進行疊加比較的AutoCAD圖形設計文件),用戶可直觀地對AutoCAD圖形文件與GIS地圖進行對比分析。

圖2 AutoCAD矢量數據發布
本文使用ArcObjects和ArcGIS Server能夠快速將AutoCAD的矢量數據實時發布為MapService供用戶疊加分析,解決了長期以來工程勘測、設計和規劃數據管理工作中WebGIS系統無法實時將AutoCAD系統圖形數據與WebGIS系統中GIS數據進行快速疊加分析的問題,并成功應用于“勘測成果一張圖”系統,大大提高了疊加分析的工作效率。本文方法的局限在于:限制所讀取的AutoCAD矢量數據空間參考系與WebGIS系統發布的地圖服務的空間參考系一致。在后續工作中,可通過將空間參考轉換功能植入服務器端程序中加以完善。
[1] 韓敏,戴步成,鄭丹晨,等.ArcGIS Server電子地圖研究與應用[J].測繪科學,2011,36(3):204-206.
[2] 財政部經濟建設司,國土資源部財務司.土地開發整理項目預算定額標準[M].北京:中國財政經濟出版社,2012.
[3] 周紅波,趙建民,袁文翠.AutoCAD圖形數據向ArcInfo數據格式轉換問題的研究[J].石油工業計算機應用,2010(2):41-44.
[4] 申勝利,李華.基于 ArcEngine的 ArcGIS與 AutoCAD數據轉換研究[J].測繪通報,2007(2):41-43,60.
[5] 安如,張琴,丁賢榮,等.長江河道AutoCAD數據轉換為GIS數據的方法[J].河海大學學報:自然科學版,2009,37(5):523-528.
[6] 陳能,施蓓琦.AutoCAD地形圖數據轉換為GIS空間數據的技術研究與應用[J].測繪通報,2005(8):11-14,34.
[7] 任東風,徐立軍,才藝.CAD到ArcGIS數據轉換問題[J].遼寧工程技術大學學報:自然科學版,2010,29(S1):25-27.
[8] 羅元穎.WEBGIS在測量規劃中的應用[J].貴州地質,2010,27(2):155-156.
[9] 郭敏,劉長星.AutoCAD向 GIS數據轉換方法的研究[J].技術與創新管理,2009,30(1):102-104.
[10] 曹國云,張偉.AutoCAD數據到GIS空間數據轉換技術和方法的研究[J].安徽農業科學,2006,34(22):6035-6036,6064.