WebGIS的開發者經常需要面對各種地圖服務規范,例如WMS、WFS、WCS、WPS、WMTS、TMS、WMSC等。因此了解這些服務的內容是相當重要的,這里對常見的服務進行了整理。
OGC聯盟:
開放地理空間信息聯盟 (Open Geospatial Consortium-OGC),是一個非盈利的國際標准組織,致力於提供地理信息行業軟件和數據及服務的標准化工作,它制定了數據和服務的一系列標准,GIS廠商按照這個標准進行開發可保證空間數據的互操作。OGC在1994年到2004年期間機構名為Open GIS Consortium, 后因業務需要更名為OGC。
WMS服務:
WMS是指OGC的Web地圖服務(Web Map Service)規范,它利用具有地理空間位置信息的數據制作地圖,將地圖定義為地理數據可視的表現。詳細信息可以參考GeoServer官網的WMS介紹。
WMS定義了一個規范的HTTP接口,支持標准HTTP協議的GET和POST請求,但多基於GET方式進行服務請求。能夠根據用戶請求返回相應的地圖(包括PNG,GIF,JPEG等柵格形式或者是SVG和WEB CGM等矢量形式)。
GeoServer支持WMS 1.1.1 (WMS最廣泛使用的版本)和WMS 1.3.0。這個規范定義了一系列操作(請求類型):
| Operation | Description |
|---|---|
| Exceptions | If an exception occur |
| GetCapabilities | Retrieves metadata about the service, including supported operations and parameters, and a list of the available layers |
| GetMap | Retrieves a map image for a specified area and content |
| GetFeatureInfo (optional) | Retrieves the underlying data, including geometry and attribute values, for a pixel location on a map |
| DescribeLayer (optional) | Indicates the WFS or WCS to retrieve additional information about the layer. |
| GetLegendGraphic (optional) | Retrieves a generated legend for a map |
-
GetCapabilities返回服務級元數據,它是對服務信息內容和要求參數的一種描述;
-
以一個xml文檔形式返回服務級元數據:WMS的參數(圖片格式、WMS版本兼容性);圖層(包圍盒大小、坐標系統、數據位置以及是否透明)
-
其參數包括:
(1) VERSION=version : WMS版本號 (沒有指定時,使用當前服務提供商提供的最高的wms版本服務)
(2) SERVICE=WMS : 當前為WMS服務 (此項在1.3.0 版本中必須要求,之前的版本可選)
(3) REQUEST=GetCapabilities :請求名稱
-
-
GetMap返回一個地圖影像,其地理空間參考和大小參數是明確定義了的;
-
返回一個地圖影像(包括PNG、
-
其主要參數包括:
(1) VERSION=version : WMS版本號
(2) REQUEST=GetMap :請求名稱
(3) LAYERS=layer_list : 請求圖層,多個圖層間用逗號分隔(如果SLD存在,該參數可選)
(4) STYLES=style_list: 指定每個圖層的渲染風格,多個圖層間用逗號分隔(如果SLD存在,該參數可選)
(5) SRS=namespace:identifier : 空間坐標系統
(6) BBOX=minx,miny,maxx,maxy : 包圍盒(SRS坐標)
(7) WIDTH=output_width : 圖片寬度
(8) HEIGHT=output_height : 圖片高度
(9) FORMAT=output_format : 圖片格式
可選參數有:
(1) SLD=sld_url : 圖層樣式描述文件的URL
(2) BGCOLOR=color_value: 背景顏色 缺省是0xffffff(白色)
(3) TRANSPARENT=TRUE | FALSE :是否為透明,缺省是不透明
-
-
GetFeatureInfo(可選)返回顯示在地圖上的某些特殊要素的信息。
-
DescribeLayer(可選)圖層描述信息
-
GetLegendGraphic(可選) 獲取Legend(圖層管理器)的圖片
WFS服務:
WFS是指OGC的Web矢量(要素)服務(Web Feature Service),返回的是矢量級的地理標記語言GML編碼,並提供對矢量的增加、修改、刪除等事務操作,是對Web地圖服務的進一步深入。WFS通過OGC Filter構造查詢條件,支持基於空間幾何關系的查詢,基於屬性域的查詢,還包括基於空間關系和屬性域的共同查詢。
WMS返回的是圖層級的地圖影像,而WFS是為了返回純地理數據而設計的,它不包含任何關於繪制數據的建議。
詳細信息可以參考GeoServer官網的WFS介紹。
所有版本的WFS服務都定義了五個操作:
| Operation | Description |
|---|---|
| GetCapabilities | Generates a metadata document describing a WFS service provided by server as well as valid WFS operations and parameters |
| DescribeFeatureType | Returns a description of feature types supported by a WFS service |
| GetFeature | Returns a selection of features from a data source including geometry and attribute values |
| LockFeature | Prevents a feature from being edited through a persistent feature lock |
| Transaction | Edits existing feature types by creating, updating, and deleting |
- GetCapabilites返回Web矢量服務性能描述文檔(用XML描述);
- DescribeFeatureType返回描述可以提供服務的任何矢量結構的XML文檔;
- GetFeature為一個獲取矢量實例的請求提供服務;
- Transaction為事務請求提供服務;
- LockFeature處理在一個事務期間對一個或多個矢量類型實例上鎖的請求
其他特定版本還定義了一些特有的操作,這里就不介紹了。
WCS服務
WCS是指OGC的Web柵格服務(Web Coverage Service)面向空間影像數據,它將包含地理位置值的地理空間數據作為“柵格或者說“覆蓋”(Coverage)”在網上相互交換。
詳細信息參考GeoServer官網的WCS介紹。
網絡柵格服務由三種操作組成:GetCapabilities,GetCoverage和DescribeCoverageType。
- GetCapabilities操作返回描述服務和數據集的XML文檔。
- GetCoverage操作是在GetCapabilities確定什么樣的查詢可以執行、什么樣的數據能夠獲取之后執行的,它使用通用的柵格格式返回地理位置的值或屬性。
- DescribeCoverageType操作允許客戶端請求由具體的WCS服務器提供的任一覆蓋層的完全描述。
WPS服務
WPS是指OGC的網絡處理服務Web Processing Server(WPS),一種用於在 Web 上提供和執行地理空間處理的國際規范。它為網絡地理信息處理服務提供了標准化的輸入和輸出。GeoServer可通過安裝插件支持該服務。
詳細信息參考GeoServer官網的WPS介紹。
WPS 可用於:
- 使用即插即用的機制降低數據處理流程的復雜性。
- 連接不同的處理操作。
- 開發可以被其它用戶重用的處理過程。
- 處理流程和模型集中與服務提供者,方便維護。
- 利用中央服務器集群的高運算性能。
- 方便對復雜模型的公共使用。
WMTS服務
WMTS指OGC的Web地圖瓦片服務(Web Map Tile Service),是OGC提出的緩存技術標准。WMTS標准定義了一些操作,這些操作允許用戶訪問瓦片地圖,是OGC首個支持RESTful訪問的服務標准。
WMTS提供了一種采用預定義圖塊方法發布數字地圖服務的標准化解決方案。WMTS彌補了WMS不能提供分塊地圖的不足,在服務器端把地圖切割為一定不同級別大小的瓦片(瓦片矩陣集合),對客戶端預先提供這些預定義的瓦片,將更多的數據處理操作如疊加和切割等放在客戶端,降低服務器端的載荷。
WMTS犧牲了提供定制地圖的靈活性,代之以通過提供靜態數據(基礎地圖)來增強伸縮性,這些靜態數據的范圍框和比例尺被限定在各個圖塊內。這些固定的圖塊集使得對WMTS服務的實現可以使用一個僅簡單返回已有文件的Web服務器即可,同時使得可以利用一些標准的諸如分布式緩存的網絡機制實現伸縮性。
WMTS接口支持的三類操作:
| Operation | Required | Description |
|---|---|---|
| GetCapabilities | 是 | 獲取服務的元信息 |
| GetTile | 是 | 獲取切片 |
| GetFeatureInfo | 否 | 獲取點選的要素信息 |
- 一個服務元數據(ServiceMetadata)資源(面向過程架構風格下對GetCapabilities操作的響應)(服務器方必須實現)。ServiceMetadata資源描述指定服務器實現的能力和包含的信息。在面向過程的架構風格中該操作也支持客戶端與服務器間的標准版本協商。
- 圖塊資源(對面向過程架構風格下GetTile操作的響應)(服務器方必須實現)。圖塊資源表示一個圖層的地圖表達結果的一小塊。
- 要素信息(FeatureInfo)資源(對面向過程架構風格下GetFeatureInfo操作的響應)(服務器方可選擇實現)。該資源提供了圖塊地圖中某一特定像素位置處地物要素的信息,與WMS中GetFeatureInfo操作的行為相似,以文本形式通過提供比如專題屬性名稱及其取值的方式返回相關信息
OSGeo和OSGeo中國中心:
OSGeo是指開源空間信息基金會(Open Source Geospatial Foundation,OSGeo)是一個全球性非營利性組織,目標是支持全球性的合作,建立和推廣高品質的空間信息開源軟件。
OSGeo中國中心是由國家遙感中心發起、Autodesk中國有限公司協助,經OSGeo正式授權的非營利性組織。中心依托在國家遙感中心,與OSGeo理事會緊密合作。OSGeo中國中心的使命是支持開源地理信息軟件和遙感軟件的開發以及推動其更廣泛的應用,尤其是幫助中國地區的用戶和開發者更好地使用OSGeo基金會提供的源代碼、產品及服務。
WMS-C:
WMS-C全稱是Web Mapping Service - Cached,也被稱為Web Maping Service Tile Cashe,對它完整的定義來源於OSGeo Wiki,2006年在FOSS4G會議上提出討論。目的在於提供一種預先緩存數據的方法,以提升地圖請求的速度。它是由OSGeo制定,而非OGC的標准,而且自始至終都沒有寫入OGC之中。
WMS-C通過bbox和resolutions去決定請求的地圖層級,為了更加直觀的請求地圖瓦片,一些軟件做了一些改進,例如WorldWind在請求中使用level/x/y三個參數,直觀明了。典型的基於WMS-C的實現是TileCache。
需要注意的是,WMS-C目前已經被OSGeo Tile地圖服務規范(TMS)和OGC Web地圖服務標准(WMTS)取代。
已經使用WMS-C規范的程序目前仍然被支持,但是如果編寫新的應用程序,應該考慮TMS和WMTS。
TMS:
TMS是指OSGeo的切片地圖服務規范(Tile Map Service),提供的操作允許用戶按需訪問切片地圖。將切片保存到了本地,使得訪問速度更快,還支持修改坐標系,是一種純RESTful的服務。
TMS和WMTS在本質上非常類似,基本上遵循的是同一種切片規則。關於兩種服務標准的區別與聯系,可參考以下幾篇博客:
OpenStreetMap/Google/百度/Bing瓦片地圖服務(TMS)
概括地來說:
- WMS:是一種動態地圖服務,根據用戶請求返回相應地圖數據的可視化結果,實時切片,因此速度較慢。是GeoServer發布地圖時較為常用的服務。
- WMTS:是一種采用預定義圖塊方法發布數字地圖服務,將地圖切分成瓦片矩陣集合,犧牲了提供定制地圖的靈活性,代之以通過提供靜態數據(基礎地圖)來增強伸縮性,這些靜態數據的范圍框和比例尺被限定在各個圖塊內,但是提升了服務速度。例如我國的天地圖就是使用這一服務進行組織的,詳情見我另一篇博客:關於天地圖的瓦片下載。
- WFS:是為了返回純地理數據而設計的,它不包含任何關於繪制數據的建議,它提供了對矢量的增加、修改、刪除等事務操作。
- WCS:是面向空間影像數據服務,它將包含地理位置值的地理空間數據作為“柵格或者說“覆蓋”(Coverage)”在網上相互交換。
- WPS:我理解的是一種提供和執行地理空間處理的服務,用於在web上發起空間運算操作。
- WMSC:是一種預先緩存數據的方法,以提升地圖請求的速度。目前已被WMTS和TMS取代。
- TMS:也是一種瓦片地圖服務,與WMTS類似,本質上遵循同樣的切片規則。
幾種服務中比較常見的是WMS、WFS和WMTS、TMS。
參考資料:
https://www.jianshu.com/p/28a00c1faa59
https://blog.csdn.net/qq_35915384/article/details/54573525
https://www.cnblogs.com/kekec/archive/2013/06/11/3131729.html
https://blog.csdn.net/qq_18298439/article/details/93329098
https://baike.baidu.com/item/OGC/6466060?fr=aladdin
https://baike.baidu.com/item/WMTS/1091367?fr=aladdin
http://www.360doc.com/content/17/0829/15/3046928_683030533.shtml
