初步了解什么是WMS和WFS
2020-01-07 本文已影响0人
写前端的大叔
在使用OpenLayers
调用geoserver
的服务的时候,用到了wms和wfs的服务,开始由于忙着赶项目,也没时间去具体了解这两个具体的相关信息,只是参考了OpenLayers
的文档来直接写代码了,趁项目赶完了,就来初步了解下这两个到底是什么。
WMS
web地图服务,是一个OGC的标准服务,主要是用来请求地图相关的数据,可以根据用户设置不同的参数,返回对应的地图数据。该服务是一个基于HTTP协议的,所支持的操作都是由URL决定的。请求示例如下所示:
http://localhost:8070/geoserver/cite/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&layers=cite%3Anc_d_a&WIDTH=256&HEIGHT=256&CRS=EPSG%3A3857&STYLES=&BBOX=12425603.318038251%2C3365675.22945288%2C12445171.197279256%2C3385243.108693885
基础参数
首先通过OpenLayers
源码中的TileWMS
来看下请求一个WMS
需要传递哪些参数。在TileWMS.js
中,可以看到一个baseParams
的对象,如下所示:
var baseParams = {
'SERVICE': 'WMS',
'VERSION': DEFAULT_WMS_VERSION,
'REQUEST': 'GetFeatureInfo',
'FORMAT': 'image/png',
'TRANSPARENT': true,
'QUERY_LAYERS': this.params_['LAYERS']
};
1. SERVICE
服务类型,主要包括WMS
,WFS
,WMTS
,WCS
等服务,都是遵循OGC标准的服务。
2. VERSION
请求的WMS的版本号,主要包括1.3.0
、1.1.1
,1.1
等版本号。
3. REQUEST
- 请求方式,主要包括以下五种。
- 请求服务的元数据(GetCapabilities)
- 请求地图图像(GetMap)
- 请求关于地图要素的信息(GetFeatureInfo,可选)
- 请求图例(GetLegendGraphic,可选)
- 请求用户定义的样式(GetStyles,可选)
前面三种比较常用。
4. FORMAT
MIME类型,值为服务元数据的输出格式,默认为图片。
5. TRANSPARENT
值为true或者false,用来表示地图图层是否透明(默认情况下是不透明的)
6. QUERY_LAYERS
字符类型,值为查询的一个或多个地图图层列表,多个图层之间用”,”隔开。可以通过以下方式来动态更新:
var source = wmsLayer.getSource();
source.clear();
var params = source.getParams();
params.layers = layers.join(',');
source.updateParams(params);
wmsLayer.setSource(source);
其它参数
1. LAYERS
字符类型,值为一个或多个地图图层列表,多个图层之间用”,”隔开
2. INFO_FORMAT
返回数据的类型,如application/json
3. FEATURE_COUNT
返回结果中要素的数量。
4. WIDTH
地图图片的宽度。
5. HEIGHT
地图图片的高度。
6. CRS
坐标参考系。如EPSG:3857
7. STYLES
图层的地图渲染样式。
8. BBOX
某个CRS下的地图边界范围的坐标序列
WFS
WFS
是Web
要素服务,区分于WMS
,WMS
返回的是图层级的地图影像,而WFS
返回的是要素级的GML
编码,并提供对要素的增加、修改、删除等事务操作,是对Web
地图服务的进一步深入。
请求方式
WFS
的请求方式主要有以下几种:
- GetCapabilities
获取WFS服务的元数据(介绍服务中的要素类和支持的操作) - DescribeFeatureType
获取WFS服务支持的要素类的定义(要素类的元数据,比如要素包含哪些字段) - GetFeature
获取要素数据 - GetGmlObject
通过XLink获取GML对象 - Transaction
创建、更新、删除要素数据的事务操作 - LockFeature
在事务过程中锁定要素。
请求示例如下所示:
http://localhost:8070/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&outputFormat=application/json&typeName=cite:yj_j_p