張 標,陳 楠
(1.自然資源部陜西基礎地理信息中心,陜西 西安 710054;2.長安大學 地質工程與測繪學院,陜西 西安 710054)
地理信息資源是國民經濟和社會信息化的重要內容,隨著各級基礎測繪和地理國情普查等重大項目的開展,各級測繪部門積累了大量矢量數(shù)據成果,并在經濟建設中發(fā)揮了重要作用[1-2]。但受到歷史原因、技術條件、數(shù)據標準等因素的影響,這些矢量數(shù)據在數(shù)據格式、坐標系統(tǒng)、數(shù)據結構、數(shù)據內容等方面存在不同程度的差異[3-4],這些差異導致矢量數(shù)據在整合處理和共享應用時需要進行數(shù)據轉換處理。針對異構矢量數(shù)據間相互轉換的問題,許多學者做了大量的研究工作,文獻[5]基于地理要素編碼實現(xiàn)了將CAD數(shù)據入庫到GeoDatabase數(shù)據庫,但該方法沒有實現(xiàn)數(shù)據過濾功能,造成轉換后數(shù)據冗余。文獻[6]利用組件技術,研究了GIS數(shù)據與SuperMap數(shù)據之間的轉換問題,但該方法沒有對屬性字段進行處理。文獻[7]通過對數(shù)據層的拆分與合并,提出了基于屬性字段的方法實現(xiàn)了Coverage格式與MDB格式的轉換,但該方法沒有實現(xiàn)屬性內容的映射。文獻[8]研究了MapGIS數(shù)據與GIS數(shù)據之間的轉換問題。上述學者的研究工作在不同程度上解決了異構矢量數(shù)據相互轉換的問題,但在通用性、全面性、靈活性方面還存在一定問題。
因此,本文設計和實現(xiàn)一種異構矢量數(shù)據映射工具,在充分分析異構矢量數(shù)據間數(shù)據格式、坐標系統(tǒng)、數(shù)據結構、數(shù)據內容等各種差異的基礎上,進行數(shù)據映射工具關鍵環(huán)節(jié)的設計,包括數(shù)據結構獲取、數(shù)據映射關系建立、數(shù)據映射關系存儲、數(shù)據內容轉換等內容。并利用ArcGIS Engine相關組件,在Visual Studio開發(fā)環(huán)境下進行了工具實現(xiàn),將所開發(fā)的工具應用于陜西省基礎地理信息數(shù)據與天地圖框架數(shù)據之間的數(shù)據相互轉換。實踐結果表明,本文設計與實現(xiàn)的異構矢量數(shù)據映射工具,能夠減少數(shù)據轉換中的人工重復作業(yè),轉換后的數(shù)據結構正確、內容完整,在保證數(shù)據轉換質量的同時,有效提升了數(shù)據轉換效率。
受到歷史原因、技術條件、數(shù)據標準等因素的影響,不同矢量數(shù)據存在不同程度的差異,主要表現(xiàn)在數(shù)據格式、坐標系統(tǒng)、數(shù)據結構、數(shù)據內容等方面。
由于歷史技術條件、數(shù)據生產方式等原因影響,不同矢量數(shù)據的成果格式不盡相同,常見的矢量數(shù)據格式主要包括ESRI的Coverage、Shapefile、Geodatabase、AutoCAD以及各類GIS平臺軟件數(shù)據格式,Coverage格式(*.E00)是早期的數(shù)據存儲格式,要素的空間信息和屬性信息記錄較為完整,并具有嚴格的要素拓撲關系。Shapefile格式(*.shp)是簡單的面向GIS的數(shù)據存儲格式,要素的空間信息和屬性信息分離存儲,不存儲拓撲關系。Geodatabase格式(*.mdb、*.gdb)是面向GIS實體對象的數(shù)據存儲格式,可利用關系型數(shù)據庫進行管理,是當前的主流數(shù)據存儲格式。AutoCAD格式(*.dwg、*.dxf)是非面向GIS對象的數(shù)據存儲格式,偏向于制圖表達,僅存儲要素的空間定位信息,缺少拓撲和屬性關聯(lián)。目前主流GIS平臺軟件數(shù)據格式基本上是面向GIS實體對象的數(shù)據存儲格式,如Geoway軟件的gwp格式、MapGIS軟件的mpj格式[9-10]。
同樣由于歷史原因,不同矢量數(shù)據采用的坐標系統(tǒng)也不盡相同,主要包括1954年北京坐標系、1980年西安坐標系、2000國家大地坐標系、地方獨立坐標系。1954年北京坐標系和1980年西安坐標系是我國早期基礎地理信息數(shù)據通常采用的大地坐標系統(tǒng),是二維的非地心坐標系,制約了地理信息數(shù)據的精確表達和各種先進空間技術的廣泛應用。地方獨立坐標系是各個地方根據自己的實際需求建立的坐標系,適用于局部特定區(qū)域,地理信息數(shù)據的精度較高但不利于數(shù)據交換和共享。2000國家大地坐標系是我國當前最新的國家大地坐標系,是一個高精度的、以地球質量中心為原點、動態(tài)、實用、統(tǒng)一的大地坐標系[11-12]。
由于數(shù)據生產時所采用的數(shù)據標準不同,不同矢量數(shù)據的數(shù)據結構存在著較大差異,主要表現(xiàn)在圖層劃分和圖層屬性結構兩個方面。矢量數(shù)據中的圖層是相似的地理要素的分組,并按照要素類別特征與幾何形態(tài)進行分層與命名,由于不同數(shù)據標準對地理要素分類分級的方法不同,導致不同矢量數(shù)據中的圖層分層與命名方式不同。以道路類地理要素為例,其在1:5萬DLG、1:1萬DLG、地理國情普查、天地圖框架數(shù)據中的圖層劃分如表1所示。

表1 道路類地理要素圖層劃分
屬性是用于描述地理要素的質量、數(shù)量、分類、性質等特征的描述性信息,受矢量數(shù)據建設目標、應用需求等原因影響,不同數(shù)據標準對地理要素特征屬性的選取也不相同,從而導致了不同矢量數(shù)據相同圖層的屬性結構也存在著差異,以道路線圖層為例,其在不同數(shù)據中的圖層屬性結構如表2所示。

表2 道路線狀圖層屬性結構
同樣由于數(shù)據標準的原因,不同矢量數(shù)據在數(shù)據內容方面也存在著較大差異,主要表現(xiàn)在要素差異和要素屬性差異兩個方面。
要素差異包括要素幾何特征差異和要素選取差異。要素幾何特征差異是指同一地理要素在不同矢量數(shù)據中使用不同幾何形態(tài)的幾何對象進行表達。如“河流流向、溝渠流向”要素在一些矢量數(shù)據中以有向點的方式進行表達,而在另一些矢量數(shù)據中則通過定長的有向線進行表達。要素選取差異是指由于選取指標、采集要求等不同導致不同矢量數(shù)據中的要素個數(shù)和內容的差異。如一些沿海地區(qū)的矢量數(shù)據中會有海洋要素,而內陸地區(qū)則沒有海洋要素。
要素屬性差異包括屬性概念差異和屬性內容差異。屬性概念差異是指同一個屬性概念在不同矢量數(shù)據中采用不同的表示語言或數(shù)據格式而導致的差異,如要素分類代碼字段在不同矢量數(shù)據中采用“GB”、“CC”、“CODE”、“CLASID”等名稱,字段格式有“長整型”或“文本型”。屬性內容差異是指同一個屬性概念在不同矢量數(shù)據中采用不同的內容值域而導致的差異。如等級字段在一些矢量數(shù)據中的值域為“一等”、“二等”、“三等”,在另一些矢量數(shù)據中則使用“1”、“2”、“3”進行表示。
數(shù)據結構和數(shù)據內容差異是異構矢量數(shù)據差異中的主要差異,同時也是數(shù)據轉換中需要重點處理的內容。
在異構矢量數(shù)據差異分析的基礎上,進行異構矢量數(shù)據映射工具關鍵環(huán)節(jié)的設計,主要包括數(shù)據結構獲取、數(shù)據映射關系建立、數(shù)據映射關系存儲、數(shù)據內容轉換等內容。
數(shù)據結構獲取是建立數(shù)據映射關系的前提。數(shù)據結構獲取的方式設計有兩種:讀取數(shù)據模板文件和用戶自定義。讀取數(shù)據模板文件是通過讀取實際矢量數(shù)據,從中獲取其結構信息。用戶自定義是用戶根據數(shù)據標準創(chuàng)建矢量數(shù)據的結構信息,包括圖層名稱、圖層幾何類型、圖層屬性結構(屬性字段的名稱、類型、長度、是否允許為空)等內容。
數(shù)據映射關系本質上是數(shù)據對象的數(shù)據模式間的映射關系,它是數(shù)據映射中最為核心和復雜的部分[13]。數(shù)據映射關系的內容包括圖層關系、屬性字段關系、屬性內容關系,數(shù)據映射關系的類型包括無對應關系、一對一關系、一對多關系、多對一關系、多對多關系[14]??紤]到數(shù)據映射關系內容較多,類型又較為復雜,如果采用傳統(tǒng)的Excel或文本對照表的方式,一則不形象直觀,二則有可能會產生遺漏和錯誤。因此為了使用戶能夠簡便、準確的建立起映射關系,需要設計一種形象直觀的方法,為此進行如下設計:將兩種異構矢量數(shù)據的數(shù)據結構中的圖層、屬性字段以類似目錄樹的方式進行顯示,用戶只需在節(jié)點之間進行連線,便可建立起映射關系。對于屬性內容關系的建立則繼續(xù)沿用對照表的方式。

圖1 映射關系示例
數(shù)據映射關系建立后(見圖1),需要將其轉化為計算機可讀取、人工能編輯維護的文件,以便能夠進行應用。XML是一種用于標記電子文件使其具有結構性的標記語言,具有異構性、可擴展性、靈活性、平臺無關性的特點,能夠更準確地搜索內容,更方便地傳輸內容,更好地描述事物[15]。因此選擇將數(shù)據映射關系保存為XML文件,并設計如下的數(shù)據結構。
圖層1,幾何類型
映射圖層1,幾何類型
屬性字段1,字段類型1,字段長度1,映射屬性字段1,映射字段類型1,映射字段長度1
屬性字段2,字段類型2,字段長度2,映射屬性字段2,映射字段類型2,映射字段長度2
……
屬性字段,字段值1,映射字段值1
屬性字段,字段值2,映射字段值2
……
圖層2,幾何類型
映射圖層2,幾何類型
屬性字段1,字段類型1,字段長度1,映射屬性字段1,映射字段類型1,映射字段長度1
……
在兩種異構矢量數(shù)據間建立數(shù)據映射關系,形成數(shù)據映射關系XML文件,如圖2所示。

圖2 XML文件示例
數(shù)據內容轉換是在數(shù)據映射關系文件的基礎上對實際矢量數(shù)據進行轉換處理。由于數(shù)據映射關系文件包含了兩種異構矢量數(shù)據間的完整對照關系,為了方便用戶對數(shù)據內容進行選擇和過濾,數(shù)據映射工具需要支持數(shù)據文件、圖層、屬性字段、地理要素等4個層次的選擇和過濾,為此做如下設計:將需要處理的數(shù)據文件、圖層、屬性字段以列表的方式進行顯示,用戶通過勾選的方式實現(xiàn)選擇和過濾,對于地理要素的選擇和過濾,則通過屬性選擇的方式進行實現(xiàn)。
按照上述關鍵環(huán)節(jié)的設計,利用ArcGIS Engine相關組件,在Visual Studio開發(fā)環(huán)境下進行異構矢量數(shù)據映射工具的實現(xiàn)。
異構矢量數(shù)據映射工具的主要功能模塊由數(shù)據結構、數(shù)據關系、數(shù)據映射3部分組成,數(shù)據結構用于獲取兩種異構矢量數(shù)據的數(shù)據結構,包含“讀取模板文件”、“用戶自定義模板”兩個命令。數(shù)據關系用于建立兩種異構矢量數(shù)據間的關系,包含“建立映射關系”、“讀取映射關系文件”、“保存映射關系文件”3個命令。數(shù)據映射用于實際矢量數(shù)據的轉換,包含“數(shù)據轉換”和“系統(tǒng)配置”兩個命令。工具的功能模塊及邏輯流程如圖3—圖4所示。

圖3 工具的功能模塊

圖4 工具的邏輯流程
ArcEngine是ESRI公司推出的可用于構建定制應用的一個完整的嵌入式的GIS組件庫。其中有3000多個對象可供開發(fā)人員調用,為開發(fā)人員集成了大量的GIS功能,可以針對GIS解決方案快速地搭建應用平臺[16]。異構矢量數(shù)據映射工具采用基于ArcEngine二次開發(fā)的方式,在Visual Studio開發(fā)環(huán)境下建立工程,利用MapControl、TocControl、ToolbarControl等控件,IWorkspaceFactory、IFeature、IGeometry、IField等相關接口,按照圖3所示的功能模塊與圖4所示的邏輯流程編寫相關代碼,編譯形成可執(zhí)行文件,完成工具的開發(fā)實現(xiàn)。工具的部分界面如圖5所示。
將按照本文設計與實現(xiàn)的異構矢量數(shù)據映射工具應用于陜西省基礎地理信息數(shù)據與天地圖框架數(shù)據之間的數(shù)據轉換工作,其效果如圖6所示。實踐結果表明,映射工具能夠依據制定的映射關系進行圖層、屬性字段、屬性內容的轉換,在減少人工作業(yè)的同時能夠保證數(shù)據轉換的準確性,提升了數(shù)據轉換效率。

圖5 工具的部分界面

圖6 數(shù)據轉換結果
完善的工具是提高作業(yè)效率和質量的關鍵。本文針對異構矢量數(shù)據間相互轉換的問題,設計和實現(xiàn)一種異構矢量數(shù)據映射工具,并將其應用于陜西省基礎地理信息數(shù)據與天地圖框架數(shù)據之間的數(shù)據相互轉換,實踐結果表明,本文設計和實現(xiàn)的工具能夠減少數(shù)據轉換中的人工重復作業(yè),轉換后的數(shù)據結構正確、內容完整,數(shù)據關系映射文件也具有一定的靈活性,同時保證異構矢量數(shù)據相互轉換的準確性,有效的解決了異構矢量數(shù)據相互轉換的問題,具有一定的參考價值。