齊菊梅, 侯清波, 裴麗娜
(黃河勘測規劃設計研究院有限公司,河南 鄭州 450003)
在工程勘察設計行業,勘察專業的上下游專業所使用的圖件大部分是AutoCAD格式的矢量化地形圖。隨著數字化采集技術的普及,在工程勘察現場需要利用便攜移動設備的GPS定位功能,來實現定位與地形圖的實時關聯,在采集空間信息的同時錄入相關的屬性信息。CAD不能建立完整的地理坐標系統和完成地理坐標的投影變換,也不具備地理意義上的查詢和分析功能;GIS中的所有數據都具有嚴格的地理參照,數據通過坐標系統與地球表面的特定位置發生聯系,利用GIS格式的空間數據架構實現空間數據和屬性數據的有機聯系。隨著CAD與GIS數據共享需求的日益增加,部分GIS軟件提供了對CAD文件的直接加載功能;基于FME數據轉換平臺可實現多種空間數據格式的轉換問題[1];申勝利、李華分析了AutoCAD圖元與ArcGIS圖元的異同,通過建立點對照表、線對照表、注記對照表實現CAD、DXF數據與ArcGIS數據相互轉換的方法[2];陳年松利用FME通過建立語義映射實現CAD數據與GIS數據的語義轉換[3]。但由于缺乏對空間對象的統一描述,不同數據格式描述空間對象時采用的數據模型不同,空間數據轉換后不能完全準確地表達原數據的信息,經常性地造成一些信息丟失和錯漏,并且數據處理流程繁瑣,轉換效率比較低,不能滿足實際生產中的需要。由此結合工程勘察數字采集系統的研發實踐,提出基于二元要素類映射池的空間數據轉換解決方案,該方法實現了空間數據的平順無損轉換,數據轉換效果和效率都能滿足生產需要,效果良好。
CAD是按圖層組織空間圖形數據,由多種繪圖實體組成,其實體采用三維坐標描述,只具備幾何位置、形狀、大小及描述元素的一些基本性質(如層名、顏色、線型等),圖形編輯功能很強,所處理的基本圖形元素有點、線、注記等。而“塊”是一種特殊的圖形元素,一般由多個基本圖形元素構成。CAD中的符號為圖形的一個部分,不同的符號可能具有不同的性質。AutoCAD的圖形數據輸出基于一個界面,其圖形元素之間沒有拓撲關系,因而CAD不具備地理分析功能。
GIS的操作對象是空間數據,它具體描述地理實體的空間特征和屬性特征[4]。空間特征是指地理實體的空間位置、拓撲關系和幾何特征;屬性特征表示地理實體的名稱、類型和數量等。根據地理實體的空間圖形表示形式,可將空間數據抽象為點、線、面三類元素,它們的數據表達可以采用矢量和柵格兩種組織形式。GIS空間數據主要采用空間分區、專題分層的數據組織方法,一般可分為圖形、屬性、注記、符號數據,其中圖形數據指地理實體的空間位置和形狀,可用幾何對象來描述,包括點、折線、圓、圓弧、橢圓、橢圓弧、Bezier曲線、樣條曲線等。
CAD與GIS數據在底層數據組織、結構等方面具有很大的不同,只有解決了CAD與GIS數據的便捷轉換問題,才能實現外業勘察數據采集與內業資料整理的一致性和共享性。
要保證空間數據格式轉換的質量,首先要確定基本圖形要素之間的映射關系,提出二元要素類映射池技術(圖1),用以解決CAD與GIS格式數據互相轉換的問題。

圖1 二元要素類映射池技術Fig.1 Mapping pool technology for binary factor classes
二元要素類映射池是存儲CAD要素與GIS要素對照關系的數據庫文件[5]。
CAD圖層中的線要素進入到GIS后轉換為GIS線圖層。數據格式轉換時,逐個讀取CAD文件的圖層,依據CAD圖層、GIS圖層命名規則,設定兩者之間的名稱對照;依據CAD、GIS中的線型定義,設定兩者之間對應的線型對照關系。
CAD文件中的塊要素進入到GIS后轉換為點圖層。數據格式轉換時,逐個讀取CAD文件中的塊,將塊名稱提取出來,依據塊定義的內容和GIS中的符號系統,設定兩者之間的符號對照關系。
將經過圖層比對產生的相應的線、點等空間數據要素的對照關系存放到相應的數據庫文件中,在格式轉換時,從數據庫中調用相應的映射關系,達到格式轉換的目的。
根據遇到的CAD圖的類型不同,每一類圖形的格式轉換都會建立相應的映射關系,將新增加的映射關系增量存放到數據庫文件中,實現對應元素智能增量化記憶。隨著轉換應用的廣泛增多,映射池內映射關系愈豐富,數據的轉換會更加智能便捷。
二元要素類映射池包括點要素映射池、線要素映射池、面要素映射池、注記要素類映射池、顏色映射池等內容,見表1-表4。

表1 點要素映射池Table 1 Mapping pool of point element

表2 線要素映射池Table 2 Mapping pool of line element

表3 顏色映射池Table 3 Mapping pool for colors

表4 圖層映射池Table 4 Layer mapping pool
采用二元要素類映射池技術進行空間數據轉換主要包括:打開源匯數據、解析源數據、建立維護轉換映射池、轉換數據(圖形數據的轉換、屬性數據的轉換、圖層顏色轉換、文字和注記的轉換等內容),見圖2。轉換步驟如下:

圖2 空間數據轉換流程Fig.2 Conversion process of spatial data
(1) 設置源匯數據格式。開始轉換之前要指定待轉換的源文件,明確其格式、版本等內容,還要明確要轉成的目標數據格式。
(2) 解析源數據。對數據描述的事物對象實例進行要素分類,如CAD數據,對每一個圖層以及每一個圖層內的點、線、面、塊要素解析,包括顏色、圖層等信息等。
對于每一類的點要素,圖層不同,塊名不同,代表的意義就不同,要單獨列出,明確其實際意義;對于每一類的線要素,圖層不同,線型不同,顏色不同,代表的物理意義不相同,需要單獨列出明確其實際意義;對于每一類面要素,圖層不同,底色花紋邊界不同,代表的物理意義不同,遍歷列出明確其實際意義。
(3) 建立二元要素類映射池。根據解析的要素類成果,在映射池中進行逐一注冊,對每個注冊項編輯其完整的映射關系,也就是源數據和目標數據之間的接口,如圖3所示,其中:“Type_CAD”指的是CAD格式的數據類型,有塊(Block)和圖層(Layer)兩種類型,CAD中的一種塊對應ArcGIS中的一個圖層,CAD中的一個圖層對應ArcGIS中的一個圖層;“Name_CAD”指的是CAD格式數據的塊名或圖層名稱;“LayerType_ArcGIS”指的是ArcGIS格式數據的圖層類型,“LayerName_ArcGIS”指的是ArcGIS格式數據的圖層名稱;“SymbolCode”指的是ArcGIS符號樣式編號;“SymbolColor”指的是ArcGIS符號顏色;“SymbolSize”指的是ArcGIS符號大小或線寬;“SymbolAngle”指的是ArcGIS符號旋轉角度;“SymbolOutline”指的是ArcGIS符號邊框顏色;“Category”指的是ArcGIS符號所屬范圍分類。

圖3 空間數據轉換接口Fig.3 Conversion interface of spatial data
利用圖3中的關系,把CAD中的塊或塊參考與ArcGIS中點、點符號庫進行映射;CAD中的線型與ArcGIS中的線型庫進行映射;CAD中的填充圖案和線的組合與ArcGIS中的面進行映射。并對其在目標格式中的數據格式以及符號化進行取舍和設定。
(4) 實施數據格式轉換。對源數據的每一個圖層、每一個要素進行遍歷,到映射池中查詢其映射規則,向目標數據文件中寫入其相應的數據和屬性,從而完成數據無損轉換。
(5) 映射池維護。映射池中的映射規則數據增量保存,即自動維護擴充,不需要人機交互維護,下次轉換再遇上同樣的數據即可直接使用,不必重復往映射池中設定映射關系,既節省了時間,又提高了效率。程序實現流程如圖4所示,首先獲取dxf文件中的所有圖層和塊,遍歷這些圖層和塊,根據圖層或塊的名稱和類型,利用sql語句去映射池中執行查詢比對,查出數據,說明是已存在的映射關系,則遍歷下一個圖層或塊,若查不出數據,則說明是不存在的映射關系,將當前對象的映射關系添加進映射池,然后再遍歷下一個圖層或塊,如此循環直至遍歷完所有的圖層和塊。

圖4 自動維護擴充流程Fig.4 Extension process of automatic maintenance
工程勘察數字采集信息系統是綜合利用GIS、GPS、RS、數據庫、計算機等技術研發的一套適用于工程勘察數據的數字化采集、管理及應用的系統。
二元要素類映射池技術作為該系統的關鍵技術之一,順利實現了CAD與GIS的空間數據轉換,見圖5。轉換后的數據在工程勘察數字采集信息系統環境下圖層、線型、顏色顯示完好,且運轉流暢。圖6為某工程地圖CAD與GIS轉換前后的對比效果,左側為原地圖數據在AutoCAD中的顯示效果,右側為轉換為GIS數據后在工程勘察數字采集信息系統中的顯示效果。

圖5 二元要素類映射池Fig.5 Mapping pool for binary factor classes

圖6 某工程地圖CAD與GIS轉換前后的對比效果Fig.6 Contrast effect between CAD and GIS in a project map
二元要素類映射池技術針對不同的要素類建立從源到匯的具備智能記憶功能的GIS與CAD空間數據轉換的映射池,提出了完善的分層比對接口處理方法,實現了不同格式的圖形和空間數據的雙向導通。該技術已在生產實踐中成功應用,實現了GIS空間數據與上、下游專業間CAD格式空間數據的便捷轉換。
二元要素類映射池具有智能記憶、增量式擴充等功能,隨著應用的增加,映射池會自我完善,要素類逐漸增加,處理方案豐富多樣,積累的越豐富應用效果也越好。相比其他轉換方法,操作簡便,且有較強的人機交互功能。
對于收集到的其它格式的數據,如MapGIS、SuperMap、Mapinfo、MicroStation等格式的數據,映射池都可以依據此思路自動進行模塊拓展,建立相應的映射池模塊,從而實現相關格式的數據轉換,且具有智能擴充的功能。