WMS参考

介绍

OGC Web Map Service (WMS)规范定义了一个HTTP接口,用于从服务器请求地理参考地图图像。GeoServer支持WMS 1.1.1(最广泛使用的WMS版本)和WMS 1.3.0。

相关的OGC WMS规范如下:

geoserver还支持对由样式化层描述符(sld)标准制定的WMS规范的一些扩展,以控制地图输出的样式。这些定义见:

大规模杀伤性武器的好处

WMS提供了一个标准接口,用于请求地理空间地图图像。这样做的好处是,WMS客户机可以从多个WMS服务器请求图像,然后将它们组合为一个用户视图。该标准保证这些图像可以彼此叠加,就像它们在现实中一样。许多服务器和客户机支持WMS。

操作

WMS请求可以执行以下操作:

Operation

Description

GetCapabilities

检索有关服务的元数据,包括支持的操作和参数,以及可用层的列表

GetMap

检索指定区域和内容的地图图像

GetFeatureInfo

检索地图上像素位置的基础数据,包括几何图形和属性值。

DescribeLayer

指示WFS或WCS以检索有关层的其他信息。

GetLegendGraphic

检索为地图生成的图例

GetCapabilities

这个 GetCapabilities 操作请求有关WMS服务器提供的操作、服务和数据(“功能”)的元数据。

getCapabilities操作的参数为:

Parameter

必修的?

Description

service

是的

服务名称。值是 WMS .

version

是的

服务版本。价值是 1.0.01.1.01.1.11.3.0 .

request

是的

操作名称。值是 GetCapabilities .

geoserver为getCapabilities操作提供以下特定于供应商的参数。它们完全记录在 WMS供应商参数 部分。

Parameter

必修的?

Description

namespace

限制对给定命名空间中的层的响应

format

以特定格式请求功能文档

rootLayer

用于启用/禁用标准根顶级层元素的标志。值为真或假。如果为false,则仅当存在多个顶级层时才包含根元素,如果只有一个顶级层,则它将是根层本身。如果指定,将覆盖相同行为的全局WMS设置或层/组设置。

getCapabilities请求的一个示例是:::

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

有三个参数传递给WMS服务器, service=wmsversion=1.1.1request=GetCapabilities . 这个 service 参数告诉WMS服务器即将发出WMS请求。这个 version 参数引用正在请求的WMS版本。这个 request 参数指定getCapabilities操作。WMS标准要求请求始终包含这三个参数。geoserver放宽了这些要求(如果省略,通过设置默认版本),但是为了符合标准,应该始终指定这些要求。

响应是一个功能XML文档,它是对WMS服务的详细描述。它包含三个主要部分:

Service

包含服务元数据,如服务名称、关键字和操作服务器的组织的联系信息。

Request

描述WMS服务提供的操作以及每个操作的参数和输出格式。如果需要,可以将geoserver配置为禁用对某些WMS操作的支持。

Layer

列出可用的坐标系和图层。在geoserver中,层以“namespace:layer”的形式命名。每一层都提供服务元数据,如标题、摘要和关键字。

GetMap

这个 GetMap 操作请求服务器生成映射。核心参数指定要在地图上显示的一个或多个图层和样式、地图范围的边界框、目标空间参考系统以及输出的宽度、高度和格式。指定参数值所需的信息,如 layersstylessrs 可从能力文件中获得。

响应是映射图像或其他映射输出工件,具体取决于请求的格式。geoserver提供了多种输出格式,如 WMS输出格式 .

getmap操作的标准参数是:

Parameter

必修的?

Description

service

是的

服务名称。值是 WMS .

version

是的

服务版本。价值是 1.0.01.1.01.1.11.3.0 .

request

是的

操作名称。值是 GetMap .

layers

是的

要在地图上显示的图层。值是以逗号分隔的层名称列表。

styles

是的

要在其中渲染层的样式。值是以逗号分隔的样式名列表,如果需要默认样式,则为空。样式名在列表中可能为空,以使用默认层样式。

srs or crs

是的

地图输出的空间参考系统。值的形式为 EPSG:nnn . crs 是WMS 1.3.0中使用的参数键。

bbox

是的

地图范围的边界框。值是 minx,miny,maxx,maxy 以SRS为单位。

width

是的

地图输出的宽度,以像素为单位。

height

是的

地图输出的高度,以像素为单位。

format

是的

映射输出的格式。参见 WMS输出格式 用于支持的值。

transparent

地图背景是否应透明。值为 truefalse . 默认是 false

bgcolor

地图图像的背景色。值的形式为 RRGGBB . 默认是 FFFFFF (白色)。

exceptions

报告异常的格式。默认值为 application/vnd.ogc.se_xml .

time

地图数据的时间值或范围。参见 地理服务器WMS中的时间支持 更多信息。

sld

一个引用 StyledLayerDescriptor 控制或增强地图图层和样式的XML文件

sld_body

已编码的URL StyledLayerDescriptor 控制或增强地图图层和样式的XML文档

geoserver为getmap操作提供了许多有用的特定于供应商的参数。这些记录在 WMS供应商参数 部分。

WMS请求示例 topp:states 要在SRS EPGS:4326中输出为PNG地图图像的层,使用默认样式为:::

http://localhost:8080/geoserver/wms?
request=GetMap
&service=WMS
&version=1.1.1
&layers=topp%3Astates
&styles=population
&srs=EPSG%3A4326
&bbox=-145.15104058007,21.731919794922,-57.154894212888,58.961058642578&
&width=780
&height=330
&format=image%2Fpng

该标准将许多参数指定为强制参数,geoserver提供 WMS反射镜 允许任选地指定它们中的许多。

试验这个特性是了解getmap参数的一个好方法。

使用getmap xml文档的wms请求示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetMap xmlns:ogc="http://www.opengis.net/ows"
            xmlns:gml="http://www.opengis.net/gml"
   version="1.1.1" service="WMS">
   <StyledLayerDescriptor version="1.0.0">
      <NamedLayer>
        <Name>topp:states</Name>
        <NamedStyle><Name>population</Name></NamedStyle>
      </NamedLayer>
   </StyledLayerDescriptor>
   <BoundingBox srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
      <gml:coord><gml:X>-130</gml:X><gml:Y>24</gml:Y></gml:coord>
      <gml:coord><gml:X>-55</gml:X><gml:Y>50</gml:Y></gml:coord>
   </BoundingBox>
   <Output>
      <Format>image/png</Format>
      <Size><Width>550</Width><Height>250</Height></Size>
   </Output>
</ogc:GetMap>

时间

从geoserver 2.2.0开始,geoserver支持WMS getmap请求的时间属性,如WMS规范版本1.3.0所述。此参数允许按时间片和空间块过滤数据集以进行渲染。参见 地理服务器WMS中的时间支持 有关其用途的信息。

GetFeatureInfo

这个 GetFeatureInfo 操作请求地图上给定位置的要素的空间和属性数据。与WFS相似 GetFeature 操作,但在输入和输出方面的灵活性较低。由于geoserver提供WFS服务,我们建议使用它,而不是 GetFeatureInfo 只要可能。

唯一的优势 GetFeatureInfo 请求使用返回的WMS图像中的(x,y)像素值。对于无法执行真正地理引用的天真客户机来说,这更容易使用。

GetFeatureInfo操作的标准参数为:

Parameter

必修的?

Description

service

是的

服务名称。值是 WMS .

version

是的

服务版本。价值是 1.0.01.1.01.1.11.3.0 .

request

是的

操作名称。值是 GetFeatureInfo .

layers

是的

GetMap

styles

是的

GetMap

srs or crs

是的

GetMap

bbox

是的

GetMap

width

是的

GetMap

height

是的

GetMap

query_layers

是的

要查询的一个或多个层的逗号分隔列表。

info_format

功能信息响应的格式。请参见下面的值。

feature_count

要返回的最大功能数。默认值为1。

x or i

是的

地图上查询点的X坐标,以像素为单位。0是左侧。 i 是WMS 1.3.0中使用的参数键。

y or j

是的

地图上查询点的Y坐标,以像素为单位。0是顶部。 j 是WMS 1.3.0中使用的参数键。

exceptions

报告异常的格式。默认值为 application/vnd.ogc.se_xml .

注: 如果要针对某个图层组发送GetFeatureInfo请求,则该图层组中的所有图层都必须设置为“可查询”才能获得结果(请参见 WMS Settings on Layers page

geoserver支持 GetFeatureInfo 回答。服务器样式的HTML是最常用的格式。为了最大限度地控制和定制,客户机应该使用GML3并为原始数据本身设置样式。支持的格式包括:

Format

Syntax

Notes

TEXT

info_format=text/plain

简单文本输出。(默认格式)

GML 2

info_format=application/vnd.ogc.gml

仅适用于简单功能(请参见 复杂的特征

GML 3号

info_format=application/vnd.ogc.gml/3.1.1

适用于简单和复杂的功能(请参见 复杂的特征

HTML

info_format=text/html

使用服务器上定义的HTML模板。参见 HTML输出格式 有关如何模板HTML输出的信息。

JSON

info_format=application/json

简单的JSON表示。看见 GeoJSON输出格式 有关如何模板化JSON输出的信息。

JSONP

info_format=text/javascript

以以下形式返回JSONP: parseResponse(...json...) 。看见 WMS供应商参数 更改回调名称。请注意,此格式在默认情况下处于禁用状态(请参见 影响WMS的全局变量 )。

geoserver为getFeatureInfo操作提供以下特定于供应商的参数。它们完全记录在 WMS供应商参数 部分。

Parameter

必修的?

Description

buffer

查询点周围搜索半径的宽度(像素)。

cql_filter

以ECQL格式筛选返回的数据

filter

以OGC筛选器格式筛选返回的数据

propertyName

要返回的功能属性

exclude_nodata_result

当设置为true时,a NaN 将在功能的查询像素值为nodata时返回。

请求功能信息的示例 topp:states HTML格式的层为:::

http://localhost:8080/geoserver/wms?
request=GetFeatureInfo
&service=WMS
&version=1.1.1
&layers=topp%3Astates
&styles=
&srs=EPSG%3A4326
&format=image%2Fpng
&bbox=-145.151041%2C21.73192%2C-57.154894%2C58.961059
&width=780
&height=330
&query_layers=topp%3Astates
&info_format=text%2Fhtml
&feature_count=50
&x=353
&y=145
&exceptions=application%2Fvnd.ogc.se_xml

geojson格式的功能信息请求示例如下:

http://localhost:8080/geoserver/wms?
&INFO_FORMAT=application/json
&REQUEST=GetFeatureInfo
&EXCEPTIONS=application/vnd.ogc.se_xml
&SERVICE=WMS
&VERSION=1.1.1
&WIDTH=970&HEIGHT=485&X=486&Y=165&BBOX=-180,-90,180,90
&LAYERS=COUNTRYPROFILES:grp_administrative_map
&QUERY_LAYERS=COUNTRYPROFILES:grp_administrative_map
&TYPENAME=COUNTRYPROFILES:grp_administrative_map

结果将是:

{
"type":"FeatureCollection",
"features":[
   {
      "type":"Feature",
      "id":"dt_gaul_geom.fid-138e3070879",
      "geometry":{
         "type":"MultiPolygon",
         "coordinates":[
            [
               [
                  [
                     XXXXXXXXXX,
                     XXXXXXXXXX
                  ],
                  ...
                  [
                     XXXXXXXXXX,
                     XXXXXXXXXX
                  ]
               ]
            ]
         ]
      },
      "geometry_name":"at_geom",
      "properties":{
         "bk_gaul":X,
         "at_admlevel":0,
         "at_iso3":"XXX",
         "ia_name":"XXXX",
         "at_gaul_l0":X,
         "bbox":[
            XXXX,
            XXXX,
            XXXX,
            XXXX
         ]
      }
   }
],
"crs":{
   "type":"EPSG",
   "properties":{
      "code":"4326"
   }
},
"bbox":[
   XXXX,
   XXXX,
   XXXX,
   XXXX
]
}

DescribeLayer

这个 DescribeLayer 操作主要由了解基于SLD的WMS的客户端使用。为了制作SLD,需要了解数据的结构。WMS和WFS都有这样的操作,因此 DescribeLayer 操作只是将客户机路由到适当的服务。

DescribeLayer操作的标准参数为:

Parameter

必修的?

Description

service

是的

服务名称。值是 WMS .

version

是的

服务版本。值是 1.1.1 .

request

是的

操作名称。值是 DescribeLayer .

layers

是的

GetMap

exceptions

报告异常的格式。默认值为 application/vnd.ogc.se_xml .

geoserver支持 DescribeLayer 回答。服务器样式的HTML是最常用的格式。支持的格式包括:

Format

Syntax

Notes

TEXT

output_format=text/xml

与默认值相同。

GML 2

output_format=application/vnd.ogc.wms_xml

默认格式。

JSON

output_format=application/json

简单的JSON表示。

JSONP

output_format=text/javascript

以以下形式返回JSONP:paddingOutput(...JSONP...)。看见 WMS供应商参数 更改回调名称。请注意,此格式在默认情况下处于禁用状态(请参见 影响WMS的全局变量 )。

层上XML(默认)格式的示例请求是:

http://localhost:8080/geoserver/topp/wms?service=WMS &version=1.1.1 &request=DescribeLayer &layers=topp:coverage

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE WMS_DescribeLayerResponse SYSTEM "http://localhost:8080/geoserver/schemas/wms/1.1.1/WMS_DescribeLayerResponse.dtd">
<WMS_DescribeLayerResponse version="1.1.1">
   <LayerDescription name="topp:coverage" owsURL="http://localhost:8080/geoserver/topp/wcs?" owsType="WCS">
      <Query typeName="topp:coverage"/>
   </LayerDescription>
</WMS_DescribeLayerResponse>

在层组上以JSON格式描述功能的一个示例请求是:::

http://localhost:8080/geoserver/wms?service=WMS
&version=1.1.1
&request=DescribeLayer
&layers=sf:roads,topp:tasmania_roads,nurc:mosaic
&outputFormat=application/json

结果将是:::

{
  version: "1.1.1",
  layerDescriptions: [
    {
        layerName: "sf:roads",
        owsURL: "http://localhost:8080/geoserver/wfs/WfsDispatcher?",
        owsType: "WFS",
        typeName: "sf:roads"
    },
    {
        layerName: "topp:tasmania_roads",
        owsURL: "http://localhost:8080/geoserver/wfs/WfsDispatcher?",
        owsType: "WFS",
        typeName: "topp:tasmania_roads"
    },
    {
        layerName: "nurc:mosaic",
        owsURL: "http://localhost:8080/geoserver/wcs?",
        owsType: "WCS",
        typeName: "nurc:mosaic"
    }
  ]

GetLegendGraphic

这个 GetLegendGraphic 操作提供了一种将图例图形作为图像生成的机制,超出了WMS功能的legendrl引用范围。它根据服务器上定义的样式或用户提供的SLD生成一个图例。有关此操作和GeoServer支持的各种选项的详细信息,请参阅 GetLegendGraphic .

例外情况

WMS可以报告异常的格式。支持的异常值为:

Format

Syntax

Notes

XML

EXCEPTIONS=application/vnd.ogc.se_xml

XML输出。(默认格式)

INIMAGE

EXCEPTIONS=application/vnd.ogc.se_inimage

生成图像

BLANK

EXCEPTIONS=application/vnd.ogc.se_blank

生成空白图像

PARTIALMAP

EXCEPTIONS=application/vnd.gs.wms_partial

这是Geoserver供应商参数,仅适用于GetMap请求。返回渲染进程引发异常时渲染的所有内容。可以与 WMS Configuration Limits 返回部分图像,即使请求因超过这些限制之一而终止。它还可以与 timeout vendor parameter

JSON

EXCEPTIONS=application/json

简单的JSON表示。

JSONP

EXCEPTIONS=text/javascript

以以下形式返回JSONP:paddingOutput(...JSONP...)。看见 WMS供应商参数 更改回调名称。请注意,此格式在默认情况下处于禁用状态(请参见 影响WMS的全局变量 )。