meface/docs/article/gis/geoserver/wms.md

6.8 KiB
Raw Blame History

title date author tags categories
WMS简述 2020-03-27 ac
WMS
GIS

1. WMSWeb Map Service

对于经常变动的空间数据通常将其发布成动态地图服务,WMS则是一个动态数据、定制地图(需结合SLD标准)的理想解决方案,根据请求范围在服务端动态生成数据渲染的图片返回客户端。

GeoServerWMS提供1.1.1和1.3.0版本的支持。

版本1.1.1和1.3.0之间的主要区别是:

  1. 在1.1.1中,使用EPSG名称空间指定的地理坐标系被定义为具有经度/纬度的轴顺序。在1.3.0中,顺序为纬度/经度。
  2. GetMap操作中,srs参数在1.3.0中被crs替换。无论版本如何,GeoServer都支持这两个参数。
  3. GetFeatureInfo操作的x和y参数在1.3.0版中被称为i和j。除处于CITE兼容模式下外GeoServer均支持两个参数,而与版本无关。
geoserver/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=epsg:4326&BBOX=-180,-90,180,90&
geoserver/wms?VERSION=1.3.0&REQUEST=GetMap&CRS=epsg:4326&BBOX=-90,-180,90,180&

WMS可以分为两类:

  1. Basic WMS(就是最常被提及的WMS,支持GetCapabilities/ GetMap操作)
  2. Queryable WFS(是在Basic WMS基础上加上GetFeatureInfo操作)

2. WMS支持的操作

WMS除了可以动态生成当前地图视图范围内的图层服务的图片并响应到前端供地图展示,还提供根据地图上像素点获取图层要素信息的查询操作接口。

接口 描述
GetCapabilities 获取服务中的要素类及支持的操作
GetMap 获取服务器生成的地图图片
GetFeatureInfo 根据地图上的像素点获取详细的要素信息

以下的示例数据为GeoServer自带的示例数据服务。

WMS中只规定了KVP格式的请求。(OWS规范中的HTTP请求参数编码有KVPXML两种)

2.1 GetCapabilities

操作示例:

http://localhost:8080/geoserver/wms?service=wms&version=1.1.1&request=GetCapabilities

参数列表

param o/m
version option
service=wms must
request=GetCapabilities must
format option
updatesequence option

响应示例

响应是功能XML文档该文档是WMS服务的详细说明。它包含三个主要部分:

  1. Service服务。包含服务元数据例如服务于服务器的组织的服务名称关键字和联系信息。
  2. Request请求。描述WMS服务提供的操作以及每个操作的参数和输出格式。
  3. Layer。 列出可用的坐标系和图层。在GeoServer中,图层以“名称空间:图层”的形式命名。每一层都提供服务元数据,例如标题,摘要和关键字。

在这里插入图片描述

2.2 GetMap

操作示例:

http://localhost:8080/geoserver/tiger/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=tiger:tiger_roads&exceptions=application/nd.ogc.se_inimage&SRS=EPSG%3A4326&STYLES=&WIDTH=476&HEIGHT=768&BBOX=-74.036865234375,40.6549072265625,-73.87344360351562,40.9185791015625 在这里插入图片描述

GetMap操作的核心参数是指定要在地图上显示的一个或多个图层和样式,地图范围的边界框,目标空间参考系统以及输出的宽度,高度和格式 参数列表

参数 是否必须 说明
version WMS服务版本默认1.3.0
request=GetMap 请求类型
layers 逗号分隔的一个或多个图层列表
styles 逗号分隔的一个或多个图层的样式列表。
crs 坐标参考1.1.1是srs1.3.0是crs
bbox CRS下的边框角(左下,右上)
width 输出的地图图片宽度
height 输出的地图图片高度
format 指定请求响应的输出格式
transparent 图层是否透明默认true
bgcolor 响应图片的背景色十六进制的rgb颜色值
exceptions 异常的输出格式默认XML
time
elevation

layers参数中的值和styles样式参数中的值之间存在一一对应关系。

版本差异

GeoServerWMS版本1.1.1和1.3.0之间的主要区别是:

  1. 在1.1.1中使用EPSG名称空间指定的地理坐标系被定义为具有经度/纬度的轴顺序。在1.3.0中,顺序为纬度/经度。
  2. 在GetMap操作中srs参数在1.3.0中被crs替换。无论版本如何GeoServer都支持这两个参数。
  3. 在GetFeatureInfo操作的x和y参数在1.3.0版中被称为i和j。除处于CITE兼容模式下外GeoServer均支持两个参数而与版本无关。

geoserver/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=epsg:4326&BBOX=-180,-90,180,90&… geoserver/wms?VERSION=1.3.0&REQUEST=GetMap&CRS=epsg:4326&BBOX=-90,-180,90,180&…

2.3 GetFeatureInfo

GetFeatureInfo操作请求地图上给定位置的要素的空间和属性数据。

WFS GetFeature操作类似但是在输入和输出方面都不太灵活。因为GetFeatureInfo请求使用的参数是getMap操作返回的WMS图像的xy像素值。

操作示例: http://localhost:8080/geoserver/wms?request=GetFeatureInfo&service=WMS&version=1.1.1&layers=topp:states&styles=&srs=EPSG:4326&format=image/png&bbox=-145.151041,21.73192,-57.154894,58.961059&width=780&height=330&query_layers=topp:states&info_format=application/json&feature_count=50&x=353&y=145&exceptions=application/vnd.ogc.se_xml

参数列表

param o/m
version must
request=GetFeatureInfo must
GetMap 参数 must
query_layers must
info_format must
feature_count option
x(i) must
y(j) must
exceptions option

响应结果

在这里插入图片描述