地理空間資料網路服務:WMS和WFS

1.網路地圖服務(Web Map Service, WMS)

網路地圖服務(Web Map Service, 以下簡稱WMS)是OGC對於地圖查詢的服務,其原始的設計理念是希望從擷取網路中所散佈的資料庫地理資訊及屬性資料,以產生客製化的地圖,且地圖一般是以JPEG、GIF或PNG等格式儲存,此外並支援SVG (Scalable Vector Graph)及WebCGM,是表現地理資料的圖形視覺化最直接的工具。WMS的規範即是客戶端向伺服器端要求圖資與伺服器端如何對客戶端表現圖資的標準化方法。WMS伺服端是透過http和使用者互動,因此使用者是透過URL傳送CGI(Common Gateway Interface)參數和WMS伺服端互動。符合OGC WMS規範的CGI應可接受三種請求和回應,分別為Metadata(詮釋資料)、Map(地圖)和FeatureInfo(圖徵資訊)。也因此WMS定義了三項基本標準操作為GetCapabilities(能力取得)、GetMap(地圖取得)和GetFeatureInfo(圖徵資訊取得)。

(1)GetCapabilities(能力取得) (必要的):此操作之功能為讓客戶端取得伺服器端的詮釋資料,而回覆客戶端的是該服務內容的詮釋資料,為一以XML編碼的文件;所提供給客戶端的資訊包括WMS server所支援的WMS操作,提供資料的詳細內容(如圖層名稱、標題、樣式、空間參考系統等)等。

(2) GetMap(地圖取得) (必要的):此操作之目的在於請求伺服器生成一幅具有確定地理位置座標範圍的地圖,但按照WMS的規範,這個操作需要明確地指定出操作本身遵循的WMS規範的版本號,如WMS 1.1.0或WMS 1.1.0,以及需要顯示的圖層、對應的座標範圍、請求地圖的大小和格式等。

(3) GetFeatureInfo(圖徵資訊取得) (選擇性的):所支援的情況為,當某一圖層定義或繼承「可查詢」(queryable)的屬性,其值等於1(true)時,客戶端便可依使用需求所取得的地圖資料,獲得相關的圖徵資訊、屬性資料等。典型的做法範例為,當使用者取得查詢的地圖後,點選圖上某點(I,J)以取得更多的資訊,而基本的操作提供了客戶端指定像素、所調查的圖層以及最後輸出的資料格式(可支援格式包括txt文件形式、html網頁格式及GML圖徵表示)。

2.網路圖徵服務(Web Feature Service, WFS)

OGC的WFS是描述、展現圖徵資料的運作方式,讓伺服器端和使用者能在圖層上溝通,獲得圖層底下各圖徵的資訊,其核心協定為GML,是資料交換流傳的重要方式。如同WMS,使用者可透由URL傳CGI參數和WFS伺服端互動;亦可透過XML文件遞交操作請求。這個OGC的介面提供了標準的圖徵資料庫擷取方式,以及如何讓使用者在網際網路或內部網路中製造、更新或修改GML圖徵資料,當客戶端傳送一個查詢的訊息給OGC的WFS時,伺服器可以GML提供地理圖徵資料以回應客戶端,因此WFS被視為GML資料的伺服器。WFS以http作為分散式的計算平台處理圖徵資料,所支援的操作包括了插入、更新、刪除和查詢。最基本的WFS應支援GetCapabilities (能力取得)、DescribeFeatureType (描述圖徵型態)和GetFeature (圖徵取得)三項操作,即僅提供「唯讀」的操作。而Transaction (執行)和LockFeature (鎖住圖徵)不是必要的,其中Transaction (執行)提供使用者互動性操作,如新增(insert)、更新(update)、刪除(delete)圖徵,其各項操作說明如下:

(1)GetCapabilities(能力取得) (必要的):藉由此項操作,伺服端會產生並回傳一個XML文件說明WFS伺服端所能提供的服務。該文件說明WFS提供服務何種型態的圖徵,使用者可以對提供服務的圖徵進行何種的操作,其文件規格與前面提過的WMS文件規格的定義大致相同,所差異者在於,WMS文件結構是由DTD(Document Type Definition)所定義,而WFS的文件結構則由Schema定義。

(2)DescribeFeatureType(描述圖徵型態) (必要的):此操作包含了零至數個型態名稱(type name)以描述圖徵型態的編碼。當使用者端提出此項請求時,WFS伺服器會產生一個文件,以描述WFS提供服務的圖徵型態結構。預設輸出為XML綱目( Schema)文件,藉由這項資料可以用來驗證由WFS伺服端所回覆的GML圖徵資料,或使用者在執行圖徵交換操作時所輸入的GML圖徵資料。除XML綱目( Schema)格式外,亦可支援其他格式,但必須於能力(capabilities)文件中言明。一般而言,XML Schema文件僅能描述單一名稱空間下的圖徵元素,此時WFS伺服端可產生一個包裝綱目(wrapper schema)以引入多個綱目(schema)以描述來自不同名稱空間的圖徵。

(3)GetFeature(圖徵取得) (必要的):使用者端提出GetFeature (圖徵取得)要求時,可指定圖徵中欲擷取的屬性資料。該操作包含了一個或多個元素的描述,用以定義欲查詢何種圖徵型態、欲輸出的屬性,及在何種空間或分空間的限制下應用此一屬性。

(4)Transaction(執行) (選擇性的):此功能係用以描述資料圖徵的修改操作,使用者透過WFS提供的transaction(執行)服務,可新增(insert)、更新(update)、刪除(delete)圖徵,當Transaction的操作完成,WFS將產生一XML文件以指出transaction(執行)的完成狀態。其中,假如服務支援LockFeature的鎖定操作時,可透過的應用指定鎖定的圖徵以進行transaction(執行)的操作。

(5)LockFeature(鎖住圖徵) (選擇性的):在Transaction(執行)的期間對一個或多個圖徵執行鎖定的要求,以確保當某個圖徵在執行transaction(執行)時,不會被其他使用者存取並修改。

什麼是地理標記語言? What is Geography Markup Language (GML)?

地理標示語言(Geography Markup Language,GML) 是OGC所提出的一種對地理物件進行編碼的語言。就資訊技術層面而言,GML是以可擴展標示語言(eXtension Markup Language,XML) 為編碼基礎的語言,主要對於地理資訊中地理圖徵(feature)的空間和非空間屬性之模式化、傳輸和儲存,並且達成下列目的(OGC,2003):

(1)透過網路對於分享和交換已編碼的地理資訊。
(2)對於不同領域的論述之地理語彙表達。
(3)對於地理的網路服務之資訊元素表達。

地理現象是複雜、多樣和多尺度的,要準確且有效率的在電腦環境中,甚至網路世界中操作,必須轉化於真實世界概念中地理資料模式(geospatial data models),以作為人與電腦溝通地理資料的中介。GML的應用並扮演了二個重要角色(OGC,2005) ,一是表現原始資料模式;另一是在地理空間資料基礎設施(Spatial Data Infrastructure,SDI)架構下,以GML文件在政府組織和商業團體中相互分享。目前實用性較高GML版本為GML 2.0和GML 3.0,其中GML 2.0符合地理空間資料庫或GIS軟體所奉行的簡易圖徵標準(Simple Feature Profile),同時也被眾多商業軟體所採行,如ESRI ArcGIS,然而GML 3.0則加強地理空間資料之表達上所需的型態與方式,支援了多種物件(objects)以描述地理資訊之位相關係、三維(3D)幾何性質、座標參考系統、時間屬性值、多種比例尺、metadata、網格(grid)資料、和對地形及區域做視覺化處理所需的預設樣式,且GML 3.0也大幅度地擴展內建元素(built-elements),這也是GML提供地理應用開發者最主要的部份。GML 3.0提供29個核心綱目(core schemas)於使用者對地理資料建立各自知識領域或專業領域的地理模式時使用,如此豐富地理描述語彙包含了超過10,000條的編碼充份地提供各知識領域所需。而GML 3.0提供地理物件的編碼包含(OGC,2003):

(1)地理特徵(geographic features),包括幾何(geometry)、位相(topology)和時間的演變(temporal evolution)。
(2)地理覆蓋(geographic coverage),包括幾何位置(geometry)和屬性值(attribute values)
(3)地理觀察(geographic observation),例如水文觀測,具有空間位置和時間動態資料的記錄。
(4)座標參考系統(Coordinate reference systems)。
(5)抽象值(abstract values),包括有測量單位的數值量化,和基於計算、分類和布林邏輯(Boolean)決定的觀測值。

GML的主要目的是提供一個一致性語言來描述地理物件,且透過這個方法所編碼地理空間資料可以輕易地分享在網路世界中。GML模式是基於物件導向技術(Object-Oriented)以直覺地建構真實世界的地理空間物件,因此GML的模式是由宣告地理物件和物件屬性所構成,Trninić (2005) 認為GML模式由幾個部份構成;首先是圖徵(feature),為基本地理物件,是來自於真實世界的抽象化,如道路或房屋;再者是幾何(geometry),是一種物件,而被用來描述地理物件的絕對位置,如點或多邊形;其次是位相(topology),也是一種物件,是用來描述地理物件的空間相互關係,如端點(node)或邊(edge);此外,地理物件也可以有許多屬性,如一個房子的具有多少房間是以表達,其「值」是一個整數型態和一個房子的空間屬性是以表達,其「值」是一個幾何座標的型態,如編碼表1。由此可見,每一個屬性有它自己的值,而值可能是一個簡單的型態,也可能是一個物件,因此GML模型是物件─屬性─值(object-property-value model),相對於ER(Entity-Relationship)模型,即為實體─關係─實體;或物件導向中物件─屬性─值模式(object-attributes-value)。

GML編碼技術是以XML Schema為基礎,是一個理想並適合於以分享為目的資料集。GML模式和它的核心綱目(core schemas)讓使用者可以描述所屬應用領用領域的地理實體,如同蓋房子前需要先畫好藍圖,這樣的藍圖不但得以在該應用領域被使用,一致性的表達方式,更使得這些地理資料亦可分享於其他應用領域中。GML核心綱目(core schemas)的元素是使用XML綱目(Schema)來構成GML的語義模式和語法規則,且GML是一個基於圖徵(feature)架構,因此一個地理物件通常可由一個或數個GML應用綱目(Application Schema)構成,如圖2所示,在GML名稱空間(namespace)中圖徵(feature)是由詮釋資料(Metadata)和幾何(Geometry)所組成,表示GML核心綱目中圖徵(feature)綱目 是由詮釋資料(Metadata)和幾何(Geometry)綱目所組成,而其它領域的名稱空間(namespace),如圖2的foo 1和foo 2應用領域中的schema 1、schema 2、schema 3所包含的元素(element),可以繼承GML架構中的物件,而根據各領域之專家對地理空間物件的模式,可建立以GML編碼模為基礎的應用綱目(application schema),而該應用綱目不但具有GML編碼規則與特性,同時又保有所屬領域中的對地理空間物件的闡釋,如此的物件可能包含道路、水溝、河流、建築物、山脈、崩塌地滑和斷層等各種的地理現象,而這些地理現象在GML中被稱為圖徵(feature),而這些圖徵在GML中是XML的元素(element),有明確的名稱(如)且藉由子屬性元素來描述,因此空間資訊將可利用GML當成一個交換標準以供各領域之專家來交換資料(Galdos Systems Inc., 2003)。

GML除了繼承XML的特色而有利於地理空間資料的交換,進一步地,剖析GML,可發現GML具有幾項特色,而被認為是解決資料相互操作性的重要基礎(Zhang等人,2003;鄧東波等人,2004):

(1) GML基於一個共通(common)的地理的抽象模型,而此模型描述真實世界中如何被一組圖徵(feature)所建構,地理圖徵是一個真實世界現象概括化物件,且該物件關連於地球上某一個空間位置,一個圖徵可有簡單的屬性和幾何屬性,簡單的屬性包括慣用的名稱、型態和值的描述,而幾何屬性可以是點、線和面所組成,因此由GML中的圖徵架構和屬性可使得圖徵容易整合,以及相互比較。

(2) GML所提供的核心綱目(core schemas),是一般性地理空間資料的描述方式,其中GML 3.1.1已增加至29個核心綱目,可滿足目前大部份地理空間資訊的編碼需求,因此藉由擴展與限制核心綱目,不但可充份表達多樣性地理空間資料,亦可使這些編碼遵循於同一標準。

(3)GML基於XML的標準,而在網路世界中對於結構化文件和資料,XML是一個通用的格式,XML是容易轉換的,除了可使用XSLT轉換外,幾乎其它的程式語言皆可轉換XML,因此依附在一個開放、非私有的標準,GML文件具有與XML同樣的彈性,可被運用、轉換和呈現。此外,現存的相關XML技術也同樣地可以應用在GML上,如XQuery和XPath的技術。

(4)GML相同於XML,提供XLink的機制,可連結不同分散的來源在一個複雜的關連(association),相同於,HTML被使用來連結網頁的重要地位,GML則被發展來連結地理網絡中地理空間圖徵集合,透過XLink可以將不同圖徵和圖徵集合之間作可跨文件的串連,因此XLink允許我們可以建構出複雜且分散的地理資料集,使我們可在不同部門間、縣市政府間,甚至國家間緊密地的整合資料及存取資料。

(5)GML文件可透過WFS在網路中相互傳輸資料,而透過其它的OGC所提供的標準網路地理資料服務,如WMS和WCS的建立與整合,不同格式的地理空間資料庫藉由GML格式以相互交換資料。

(6)GML資料完全以文字型態儲存,文字格式不被任何一個軟體可限定的,不同於現今許多地理空間資料格式是以二元制(binary)格式,使人無法閱讀,甚至解析。也因為GML是文字格式,它可以輕易的整合不同來源的非空間型態資料,如文字、一般圖形、動畫、聲音…等,這提高了地理空間資料的價值和親近性。

延伸閱讀:
2005年,國土資訊系統通訊,以地理標記語言建立異質地理資料之共享機制─以台北市政府為例
2005, GML Days, Vancouver, British Columbia, Canada, July 18th – 22thExperience in Building GML-based Interoperable Geo-spatial Systems
2006, Map Asia, Bangkok, Thailand, August 29th – September 1st Working with GML for Internet GIS: User Perspective and Experience

參加「高程資料流通共享標準制度規劃建置作業」專家會議的心得

目前成大洪榮宏老師幫內政部制定一系列關於國土資訊系統的標準制度,包括「資料標準共同規範」、「詮釋資料標準」、「行政界線標準」、「地籍資料標準」、還有本次的「高程資料標準」。

就Open GIS的理念而言,資料標準是為了資料流通,但OGC制定的GML雖然有豐富的地理語彙可使用於地理資料的標示,但因GML Schema或者說XML Schema較為彈性架構,使得同樣的資料有可些有不同的地理資料模型產生,在這裡的case,是這麼多的資料標準下,若有一個共同的資料標準模型,有助於程式開發的人有一個設計的準則,也使得後續處理元件開發才能環環相扣,所以看到這一系列的標準,心中的疑問是這些標準的有無共通模型,而這個模型是一個更高等級,或是說更抽象等級的資料模型,用來限定這些資料標在一定的範圍與邏輯思考,然而,答案是否定的。「資料標準共同規範」看起來只規定限用ISO的標準和XML技術,另一方面,各個分項資料之間交由各個權責單位來負責,也無相互的溝通機制,當然使用GML已經是共同標準,但後續可能要為了處理不同層次的GML文件,所花的efforts恐怕也不少,這是一個還沒發生的問題,可是未來可能發生。

這個專家會議果然來的都是高程資料的專家,但是專家似乎對於資料模型(Data Model)不是很了解,針對的都是資料的專業知識,至於application schema應該長的如何,好像沒有人有太多的想法,反而把焦點放在資料的生產過程和資料的轉換問題。但interoperability的重點應該把焦點放在application schema是否能夠充份解釋data model,以致於資料交換上不產生落差,資料生產的精度和方法,以致於資料轉換的問題,事實上不是這裡的重點,這部份都放在metadata來解決就好了!!所以主要的問題還是在於認知的問題,資料交換的議題是在於某一單位所釋放出來的資料是否能被其它單位無隔閡、無障礙地讀取或使用,資料精度是資料品質的問題,資料模型才是資料交換過程中決定交換的關鍵。