初步了解什么是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
服务类型,主要包括WMSWFSWMTSWCS等服务,都是遵循OGC标准的服务。
2. VERSION
请求的WMS的版本号,主要包括1.3.01.1.11.1等版本号。
3. REQUEST

        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

WFSWeb要素服务,区分于WMSWMS返回的是图层级的地图影像,而WFS返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。

请求方式

WFS的请求方式主要有以下几种:

http://localhost:8070/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&outputFormat=application/json&typeName=cite:yj_j_p

个人博客

上一篇下一篇

猜你喜欢

热点阅读