期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
1 引言
在信息高速公路的時代,如何能在不同的GIS 系統間分享數據,是一件刻不容緩的問題,然而空間信息要真正實現共享, 必須解決空間信息數據多格式、多數據庫融合等瓶頸問題[1]。由于GIS處理的數據對象是空間對象,有很強的時空特性,獲取數據的手段也復雜多樣,這就形成多種格式的原始數據,再加上GIS 應用系統很長一段時間處于以具體項目為中心的孤立發展狀態中, 很多GIS 軟件都有自己的數據格式,且互不兼容,因此形成一個個“信息孤島”,造成了人力、財力上的浪費,信息資源不能得到有效的利用。現在該問題已經有了一個很好解決方案,那就是以 XML 為基礎的 GIS 編碼標準,稱為地理圖形標記語言GML(Geography Markup Language)。GML是由開放式地理信息系統聯盟(OpenGIS Consortium,簡稱OGC)所發展,專為地理信息而發展的,以GML 為基礎的編碼標準,其與生俱來的轉換及存取能力,將為地理空間信息的管理開啟一個全新的領域[2]。
2 異構系統間數據交互方式
目前,從技術角度來講,解決空間數據共享的方法主要包括數據交換和GIS 的互操作。
2.1 空間數據交換的辦法
在以單機、數據集中式管理為特點的GIS技術發展階段,滿足GIS 各個系統之間數據共享需求的主要技術手段是數據交換,數據交換所要解決的核心問題是來源于不同GIS 的數據之間格式轉換的問題。
(1) 數據格式轉換模式
這種基于文件級的共享是當前GIS 軟件系統共享的主要辦法。它主要是把其它格式的數據經過專門的數據轉換程序進行轉換,變成本系統的數據格式,從而通過交換格式來實現系統之間的共享。由于轉換模式缺乏對空間對象統一的描述方法,因而使得不同數據格式描述空間對象時采用的數據模型不同,轉換后不能完全準確地表達原數據信息,經常性地造成一些信息丟失,同時數據不能自動同步更新。
(2) 直接數據訪問模式
它是指在一個GIS 軟件中實現對其它軟件數據格式的直接訪問,用戶可以使單個GIS 軟件存取多種數據格式。由于對數據的訪問是建立在對要訪問數據格式的充分了解的基礎上,因此如果要訪問的數據格式不公開,就無法進行訪問;并且如果宿主軟件數據格式發生變化,各集成軟件必須提供升級軟件,基于這種GIS 數據格式的數據處理必存在滯后性。
2.2 GIS 的互操作
數據互操作模式是OpenGIS Consortium制定的規范。它為多源數據共享提供了一個嶄新的思路和模式。OGC 為數據互操作制定了統一的規范,從而使得一個系統同時支持不同的空間數據格式成為可能。根據OGC頒布的規范,可以把提供數據源的軟件稱為數據服務器(Data Servers),把使用數據的軟件稱為數據客戶(Data Clients),數據客戶使用某種數據的過程就是發出數據請求,由數據服務器提供服務的過程,其最終目的是使數據客戶能讀取任意數據服務器提供的空間數據[3] 。目前實現數據融合的互操作主要有基于公共接口的GIS 互操作(見圖1) 和基于聯邦空間數據庫的互操作(見圖2) 。數據互操作模式在應用中的主要局限在于:
(1) OGC 標準雖然將計算機軟件領域的非空間數據處理標準成功地應用到空間數據上,但是,它主要考慮的是采用了OpenGIS 協議的空間數據服務軟件和空間數據客戶軟件,對于那些歷史存在的大量非OpenGIS 標準的空間數據格式的處理辦法還缺乏標準的規范,而非OpenGIS 標準的空間數據格式目前占主體地位;
(2) 為真正實現各種格式數據之間的互操作,需要每種格式的宿主軟件都按照統一的規范實現數據訪問,在一定時期內還不現實;
(3) 一個軟件訪問其它軟件的數據格式時是通過數據服務器實現的,這個數據服務器實際上就是被訪問數據格式的宿主軟件,這就是說,用戶必須同時擁有這兩個GIS 軟件,并且同時運行,才能完成數據互操作過程。
3 基于GML的空間數據共享模型
GML[4]是由OGC 發展,以第二代網絡語言XML為基礎的GIS 編碼標準。之所以從眾多的空間數據交換格式標準中選擇它,除了GML 簡單、容易和非空間數據整合、容易轉換外,還基于以下原因:
(1) GML 是遵循OGC 所制定的地理抽象模型,該模型已得到了大多數GIS 軟件廠商及第三方軟件廠商的支持,因此數據在轉換成GML不會有信息的損失。
(2) GML 空間數據的有效性控制,GML 模式定義了GML 文檔的內容和結構,通過GML 模式可以在數據編輯及傳輸時驗證其規格是否有效。
(3) GML 是基于XML 的地理信息表示,各種XML 技術如XML解析、XML Schema、XLink、XPointer、XSL 、XML 查詢語言等都可應用于GML。
(4) GML封裝了地理信息及其屬性,GML地理要素(Feature)包括一系列的屬性和相應的幾何信息、拓撲信息,一般來說屬性由名字、類型和值組成,幾何信息由基本元素如點、線、面、曲線、多邊形等組成, 拓撲信息由拓撲基元Node、Edge、Face、TopoSolid 以及這些基元之間的關系來描述。GML 允許構建相當復雜的要素,如要素間的嵌套。
(5) GML 封裝了空間地理參考系統,空間地理參考系統是地理信息系統數據處理的基礎。GML 封裝了空間地理參考系統、主要的投影關系等,保證分布式處理的擴展性和靈活性。
(6)通過編寫轉換器可以方便的把GML數據從一種格式轉換為另一種格式,如利用GML數據文件生成shp文件、tab文件等。這種變形可以同過多種方式完成,如XSLT(Extensible Stylesheet Language Transformation),C#、Java等,其中利用XSLT最為方便,其他技術可用于實現XSLT的擴展模塊[5,6]
3.1共享模型的實現思想
現有的空間數據共享方案各有優缺點。而SQL (標準結構化查詢語言) 以及ODBC的出現曾經為不同數據庫之間的數據交換難題提供了比較滿意的解決方案。引進這種思想, 將空間數據納進標準組織和標準協議進行規范和管理,這里提出一種空間數據共享的新模型,該模型的具體實現思想如下:
(1)定義一個標準的GML Schema,即定義一個標準的數據編碼格式,通過GML Schema 可以把主流數據格式的GIS數據無損轉換成GML標準格式。(如圖3所示)
(2)提供一種解析轉換機制,首先利用GML 的擴展、定制功能對GML標準文件進行準確的解析,使GML數據轉換為客戶要求GML 數據文件,即語義GML,然后語義GML根據請求格式生成相應的用戶要求格式。
(3)能夠提供空間元數據服務,能夠實現異構數據源在元數據庫中的注冊、查詢,空間數據共享模塊可以通過元數據庫服務得到數據源的信息。
3.2 方案的實施
這種方案以GML為基礎,利用GML 的跨語言,跨平臺的特性實現異構數據源之間的數據共享,方案模型如圖4所示,下面來說明方案實施的具體流程。
(1)用戶發出某一格式數據請求(圖4中1號箭頭);
(2)空間數據共享模塊向元數據服務模塊發出查詢請求(圖4中2號箭頭);
(3)請求信息源信息的返回(圖4中3號箭頭),元數據服務的注冊服務模塊分析來自共享模塊的請求,檢索注冊數據庫,將查詢結果返回到共享模塊;
(4)共享模塊對元數據服務模塊返回的信息進行分析,判斷返回的圖層格式是否與用戶要求的格式相同,如果相同則直接綁定數據源,獲取請求的圖層(圖1中4號5號箭頭);如果不同則向GML轉換模塊請求數據(圖4中6號箭頭代表該步驟);