摘要:針對市、縣級城鎮地籍管理系統中普遍存在的數據轉換和管理問題,通過分析WALK與ArcGIS GeoDatabse組織存儲結構的異同點,提出了采用從底層直接讀取walk加密的長二進制數據,通過ArcObjects組件將數據寫入GeoDatabase的數據轉換方法,并詳細論述了轉換的關鍵技術與實現過程。通過轉換,其成果能夠滿足以ArGIS 9i + Orcal 10g 為平臺的城鎮地籍管理信息系統開發的要求。
關鍵詞:Walk;ArcGIS GeoDatabase;數據轉換
一、引言
Walk系列產品是浙大數維公司自主研發的新一代空間數據采集加工和空間數據管理一體化的GIS軟件,其數據存儲結構采用RDBMS管理方式,按對象方式記錄和描述實體位置,由于該軟件在外業數據采用、內業數據建庫以及數據更新具有許多獨到的優點,因而在浙江省測繪單位得到廣泛使用。浙江省縣級城鎮地籍管理系統主要由浙大網新、上海數慧、武義中地三家公司開發,其中浙大網新與上海數慧均采用ArcGIS 9i + Orcal 10g來集中管理數據,兩家公司開發的城鎮地籍系統占浙江省城鎮地籍統總市場分額的75%以上,基于此,需要解決WALK數據與ArcGIS數據之間的無損交互。
二、Walk和GeoDatabase數據組織分析
2.1Walk數據組織分析
Walk數據采用面向對象的數據模型,是一種純數據庫的存儲方式。Walk數據庫以訪問類型不同可分為:Access簡單數據庫文件和以數據源形式存在的數據庫文件,其中后者是采用ODBC數據源管理器創建數據源,然后以訪問數據源的形式對數據進行實時更新存儲。Walk數據操作以圖層方式來實現,任何一個層的數據要素信息都包含在“注記信息”、“幾何屬性集”和“層符號式樣信息”三個部分中,分別對應于數據庫中的Annotations、Features、Symbols三個表。三表通過外鍵關聯,利用SQL語句來構建要素對象,每個對象都有唯一的實體號,對象數據的存取主要依據實體號。
2.2GeoDatabase數據組織結構
Geodatabase是ESRI公司在ArcGIS 8引入的一個全新的空間數據模型,是建立在關系型數據庫管理信息系統之上的統一的、智能化的空間數據庫。支持很多類型數據直接存儲在里面,并對他們進行統一管理。
Geodatabase包括兩種:Personal Geodatabase和ArcSDE Geodatabase,其中前者是將空間數據存儲在Access中,后者是將數據存儲在Oracle,Informix,DB2,SQL Server等大型關系數據庫中。
三、Walk與GeoDatabase的數據轉換
由于Walk和GeoDatabase在數據結構、數據表達上存在差異,因此在轉換過程中需要對信息區分選擇,采用面向對象的方法,從Walk數據庫中抽取出“對象”,對應地轉換到GeoDatabase中,這樣轉換減少了的環節,從而提高了轉換數據的精度和效率。其次,對象間的直接對應轉換可以實現雙向可逆轉換。
3.1關鍵技術分析
3.1.1Walk數據幾何類型的抽取
Walk數據向GeoDatabase轉換的時候,首先需要考慮實體幾何類型的對照問題。在Walk層對應的Features表中StyleID字段中記錄了地物式樣代號,該StyleID與庫中SymbolFactory表相關聯,判斷該地物的幾何類型,然后將“GeoDatabase層類型標識”寫入Walk庫的WalkLayers表中的Memo字段中。在該字段中允許寫入多個GeoDatabase層類型標識,用于支持由一個Walk層名直接查找(多個)GeoDatabase層名。
3.1.2 幾何對象的轉換
Walk和GeoDatabase中的幾何對象都是由其完整的幾何對象模型來定義和構建的,數據中包括的幾何對象主要四大類:點、線、面和注記,其中Walk中線類分別獨立定義了折線、弧線、圓、曲線等,但是GeoDatabase中對折線、弧線、圓弧、橢圓弧、曲線等只能作為多義線(Polyline)來構成。針對這個問題,轉換之前先對Walk中的線弧段進行點加密再折線化,最后轉換為Polyline。同樣,Walk的面轉為GeoDatabase的Polygon時亦是如此。Walk的注記可以通過提取annotations表中信息轉換為GeoDatabase的注記要素(AnnoXation Feature),同時對注記的渲染信息轉義為GeoDatabase的注記要素信息。
3.2 實現過程描述
3.2.1 刷新Walk層與GeoDatabase層的對照
刷新層實際上就是枚舉Walk庫和GeoDatabase庫(MDB庫和SDE庫)中包含的層。通過抽樣統計Walk層的文字和地物類型(并指定統計使用的前N個地物),確定Walk層中包含地物的幾何類型,寫入GeoDatabase層類型標識的擴展字符字段(Memo),最后讀取Walk庫中WalkLayers的層信息來刷新Walk層與GeoDatabase的對照信息。
刷新層對照功能采用人機交互的模式:由使用者確定Walk與GeoDatabase要素層“一對一”或“一對多”;針對Walk中的有向點,可以選擇Walk點輸出GeoDatabase的要素層類型。
3.2.2 創建層結構
根據Walk層與ArcGIS GeoDatabase層對照信息,確定是追加或者重建數據庫要素層,然后定義每個屬性字段在Walk與ArcGIS GeoDatabase中的對應關系,最后按Walk層結構創建GeoDatabase層結構,以及按GeoDatabase層結構創建Walk層結構。
3.2.3 添加地物或文字
打開Walk數據庫循環提取Features或Annotations表的每條記錄,然后分別將幾何對象和屬性項賦給ArcGIS GeoDatabase對應要素的屬性字段中,即是循環向ArcGIS層中添加Walk層的地物或文字,并添加地物的式樣(Code);同樣道理可以實現向Walk層中添加GeoDatabase層的地物或文字。
執行完成后,將結果填入對話框的層對照列表中。
四、結束
本文通過對Walk與ArcGIS GeoDatabase數據組織的分析,采用從底層直接讀取walk加密的長二進制數據,通過ArcObjects組件將數據寫入GeoDatabase轉換方法,該方法解決了轉換過程中部分圖元顯示信息的丟失問題,能夠保證轉換后圖形的精度,實現圖形屬性信息、注釋、符號信息的完整轉換,達到了數據轉換的要求。
通過數據轉換,在空間上把數據組織成一個整體;在內容上把數據組織成層結構。由于Walk數據在邏輯上是無縫的,沒有圖幅的概念,在轉入ArcGIS時不存在圖幅拼接的問題,實現了數據的集中統一管理模式。
參考文獻
[1]胡良軍,邵明安.GIS接受外部空問數據的初步探討—兼論Arc/Info的數據接受方式[ J].遙感技術與應用,2000,15(4):265 —269
[2]WALKCM2008使用說明書
[3]WALKScript 開發手冊(對象化版本)