WMS供应商参数

WMS供应商参数是由实现定义以提供增强功能的非标准请求参数。Geoserver支持各种特定于供应商的参数。

一般供应商选项

这些供应商选项可用于所有操作。

内容--处置

这个 content-disposition 参数指示Web浏览器如何处理返回的内容。语法为::

content-disposition=<disposition>

哪里 content-disposition =attachment 指示浏览器将内容保存到磁盘。

哪里 content-disposition=inline 要求浏览器显示内容。注意:当被要求显示非常大的内容时,这可能会带来性能问题。

文件名

这个 filename 参数提供浏览器保存文件(例如保存到下载文件夹)时建议的文件名。语法为::

filename=<file>

文件名使用的一个示例是::

filename=features.json

将服务输出另存为文件时,供应商选项 filename 用于提供所用的文件名。

获取能力请求

格式

这个 format 参数可用于以特定格式请求功能文档。如果不支持请求的格式,将使用默认格式。

示例请求:

备注

当前此参数只能用于请求WMS 1.1.1功能文档编码 text/xml 如果与其他WMS版本或其他格式一起使用,它将不起作用。

命名空间

这个 namespace 参数导致WMS GetCapabilities 要筛选的响应仅包含特定命名空间中的层。语法为::

namespace=<namespace>

在哪里? <namespace> 是命名空间前缀。

警告

使用无效的名称空间前缀不会导致错误,但返回的功能文档将不包含层,只包含层组。

备注

这只影响功能文档,而不影响其他请求。即使指定了名称空间,其他WMS操作仍将处理所有层。

生根层

这个 rootLayer 参数可用于请求功能文档包含或不包含顶级根层容器。默认情况下,此顶级根始终作为配置的层和组的父级包含。可以在服务(WMS)级别或层/组级别更改默认值。

使用此参数,当结果文档具有单个top元素(例如具有嵌套子元素的单个组)时,可以排除默认根。为此,请使用 价值。

参数还可用于覆盖在WMS或层/组级别定义的内容。例如,如果将服务配置为排除根元素,则可以使用 rootLayer=true .

示例请求:

XML Post示例:

<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetCapabilities xmlns:ogc="http://www.opengis.net/ows"
            xmlns:gml="http://www.opengis.net/gml"
   version="1.1.1" service="WMS" rootLayer="false">
</ogc:GetCapabilities>

GetMap请求

这个 angle 参数围绕其中心顺时针旋转输出映射。语法是::

angle=<x>

在哪里? <x> 是要旋转的度数。

使用batik生成器(默认设置)时,所有栅格格式、PDF和SVG都支持地图旋转。

缓冲区

这个 buffer 参数指定在 GetMapGetFeatureInfo 操作。语法是::

buffer=<bufferwidth>

在哪里? <bufferwidth> 缓冲区的宽度(像素)。

GetMap 操作,缓冲包括位于请求边界框之外,但其样式足够厚,可以在地图区域内看到的功能。

GetFeatureInfo 操作时,缓冲会在请求的位置周围创建一个“搜索半径”。对于与搜索区域相交的要素,将返回要素信息。这在使用Openlayers映射(例如由 层预览 page)因为它可以使您轻松地精确单击一个点,以便返回适当的功能信息。

在这两个操作中,geoserver尝试计算 buffer 通过检查每个层的样式自动设置值。对所有活动符号进行评估,并使用最大符号的大小(即最大点符号、最粗线符号)。如果出现以下情况,则无法计算自动缓冲区大小:

  • SLD包含指定为功能属性值的大小

  • SLD包含外部图形,未显式指定其大小

在这种情况下,将使用以下默认值:

  • 0像素 GetMap 请求

  • 5像素 GetFeatureInfo 请求(可通过 org.geoserver.wms.featureinfo.minBuffer 系统变量,例如,添加 -Dorg.geoserver.wms.featureinfo.minBuffer=10 使最小缓冲区为10像素)

如果这些值不够大,则可以使用显式参数。

cql_filter

这个 cql_filter 参数与标准相似 filter 参数,但是过滤器是使用ECQL(扩展公共查询语言)表示的。与OGC XML过滤器相比,ECQL提供了一种更紧凑和可读的语法。有关详细信息,请参阅 ECQL参考cql和ecql 辅导的。

如果在 layers 参数,然后可以为每个层指定一个单独的筛选器,用分号分隔。语法是::

cql_filter=filter1;filter2...

一个简单的cql过滤器的例子是:

cql_filter=INTERSECTS(the_geom,%20POINT%20(-74.817265%2040.5296504))

排序依据

这个 sortBy 参数允许使用与WFS 1.0相同的语法控制地图中显示的要素/栅格的顺序,即:

  • &sortBy=att1 A|D,att2 A|D, ... 对于单层请求

  • &sortBy=(att1Layer1 A|D,att2Layer1 A|D, ...)(att1Layer2 A|D,att2Layer2 A|D, ...)... 请求多层时

使用时应小心,因为它对栅格图层、矢量图层和图层组具有不同的行为。特别地:

  • 为了 栅格层sortBy 映射到阅读器可能公开的“排序”读取参数(图像马赛克公开此类参数)。
    在图像拼接中,这会导致排序中发现的第一个颗粒显示在顶部,然后其他颗粒也会随之出现。
    因此,对卫星图像的零散拼图进行排序,使最新的图像显示在顶部,并假设时间属性被称为 ingestion 在马赛克索引中,规范将 &sortBy=ingestion D .
  • 为了 矢量层sortBy 映射到向量数据源中的sort by子句,然后使用普通的“painter model”规则进行绘制,因此首先绘制返回的第一个项,然后绘制上面的所有其他项。
    因此,要对一组事件点进行排序,以便在顶部绘制最新的事件,并且假设该属性在向量层中称为“日期”,则规范将 &sortBy=date&sortBy=date A (默认为升序)。
  • 为了 图层组 ,排序规范将复制到所有内部层,因此规范必须对所有内部层都有效,否则将报告错误。
    在这种情况下,可以将空规范用于层组,例如, layers=theGroup,theLayer&sortBy=(),(date A)

埃恩

这个 env 参数定义可以在SLD变量替换中使用的替换值集。语法是::

env=param1:value1;param2:value2;...

SLD中的变量替换 更多信息。

特征ID

这个 featureid 参数按功能ID筛选,这是为所有功能指定的唯一值。可以通过逗号分隔FeatureID来选择多个功能,如本例所示:

featureid=states.1,states.45

滤波器

WMS规范只允许有限的数据过滤。geoserver增强了WMS过滤能力,以匹配WFS提供的过滤能力。这个 filter 参数可以指定OGC XML筛选器的列表。列表用括号括起来: ( ) .在GET请求中使用时,XML标记括号必须是URL编码的。

如果在 layers 然后可以为每个层指定单独的过滤器。

在GET请求中编码的OGC筛选器的示例如下:

filter=%3CFilter%20xmlns:gml=%22http://www.opengis.net/gml%22%3E%3CIntersects%3E%3CPropertyName%3Ethe_geom%3C/PropertyName%3E%3Cgml:Point%20srsName=%224326%22%3E%3Cgml:coordinates%3E-74.817265,40.5296504%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E

GET请求中的OGC过滤器编码标准2.0的示例如下:

filter=%3Cfes%3AFilter%20xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%22%20xmlns%3Agml%3D%22http%3A%2F%2Fwww.opengis.net%2Fgml%2F3.2%22%20xmlns%3Awfs%3D%22http%3A%2F%2Fwww.opengis.net%2Fwfs%22%20xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Ffes%2F2.0%22%20xmlns%3Afes%3D%22http%3A%2F%2Fwww.opengis.net%2Ffes%2F2.0%22%3E%3Cfes%3APropertyIsLike%20wildCard%3D%22*%22%20singleChar%3D%22.%22%20escapeChar%3D%22!%22%3E%3Cfes%3AValueReference%3ENAME%3C%2Ffes%3AValueReference%3E%3Cfes%3ALiteral%3E*United*%3C%2Ffes%3ALiteral%3E%3C%2Ffes%3APropertyIsLike%3E%3C%2Ffes%3AFilter%3E

OGC过滤器编码标准2.0的示例::

<fes:Filter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:wfs="http://www.opengis.net/wfs" xmlns="http://www.opengis.net/fes/2.0" xmlns:fes="http://www.opengis.net/fes/2.0"><fes:PropertyIsLike wildCard="*" singleChar="." escapeChar="!"><fes:ValueReference>NAME</fes:ValueReference><fes:Literal>*United*</fes:Literal></fes:PropertyIsLike></fes:Filter>

format_options

这个 format_options 是特定格式参数的容器。语法是::

format_options=param1:value1;param2:value2;...

支持的格式选项包括:

  • antialias (值= onofftext ):控制栅格输出中抗锯齿渲染的使用。

  • callback :指定jsonp响应格式的回调函数名(默认为 parseResponse

  • dpi: sets the rendering DPI (dots-per-inch) for raster outputs. The OGC standard output resolution is 90 DPI. If you need to create high resolution images (e.g for printing) it is advisable to request a larger image size and specify a higher DPI. In general, the image size should be increased by a factor equal to targetDPI/90, with the target dpi set in the format options. For example, to print a 100x100 image at 300 DPI request a 333x333 image with the DPI value set to 300: &width=333&height=333&format_options=dpi:300

  • layout :指定要使用的布局名称。布局用于添加圆规和图例等装饰。此功能将在 WMS装饰 部分。

  • quantizer (值= octreemediancut ):控制用于生成PNG8图像的颜色量化器。geoserver 2.2.0提供了两个量化器,一个叫做 octree 它不处理半透明和更慢但更精确的rgba量化器 mediancut .默认情况下,第一个用于不透明图像,而第二个则在客户端要求透明图像时启用。 (transparent=true )。此供应商参数可用于手动强制使用特定量化器。

  • timeout :为getmap请求应用超时值。如果超时,则取消getmap请求并返回错误。超时值将是此格式选项的最小值,并且在 WMS配置 .值为零表示没有超时。

  • kmattr (值= truefalse ):确定由geoserver返回的kml是否应包含可单击属性。此参数主要影响Google Earth渲染。

  • legend (值= truefalse ):kml可以添加图例。

  • kmscore (值=介于 0 强制栅格输出和 100 强制矢量输出):参数设置地理服务器应将kml数据呈现为矢量还是栅格。此参数主要影响Google Earth渲染。

  • kmltitle :参数设置kml标题。

  • kmlrefresh (值=大于 0expires ):强制网络链接在刷新模式下以秒为间隔重新加载。当指定Expires时,只要缓存过期头中指定的时间已过,客户端将刷新。可以在“发布”选项卡“设置HTTP缓存时间”下的“层配置”中设置缓存时间。此参数主要影响Google Earth渲染,取决于客户是否尊重此参数。使用第二个间隔是更可靠的选择。

  • kmlvisible (值= truefalse ):指示所选层是否默认为启用。默认行为已启用。此参数主要影响Google Earth渲染。

  • advancedProjectionHandling (值= truefalse ):启用禁用高级投影处理(如果在GUI中启用)。如果在GUI中禁用该选项,则该选项无效。

  • mapWrapping (值= truefalse ):启用禁用连续映射包装(如果在GUI中启用)。如果在GUI中禁用该选项,则该选项无效。如果 advancedProjectionHandling 已禁用。

  • decorationsOnly (值= truefalse ):默认禁用。当value为true时,它允许为不呈现地图的请求获取透明大小的图像,但它会保持应用装饰(如果存在)。

MaxFeatures和StartIndex

参数 maxFeaturesstartIndex 可以一起使用以提供“分页”支持。分页在诸如kml爬行之类的情况下很有用,在这种情况下,当有大量特性时,需要能够分段检索地图。

这个 startindex=n 参数指定在功能的有序列表中开始呈现的索引。 n 必须是正整数。

这个 maxfeatures=n 参数设置对呈现的功能数量的限制。 n 必须是正整数。与一起使用时 startindex ,呈现的功能将是从 startindex 价值。

请注意,并非所有层都支持分页。对于以这种方式查询的层,底层功能源必须支持分页。这通常是数据库(如PostGIS)的情况。

调色板

有时(出于速度和带宽的原因)建议对返回映射的位深度进行缩小采样。这样做的方法是使用有限的调色板创建图像,并将其保存在 palettes 地理服务器数据目录中的目录。然后可以指定 palette 表单参数:

palette=<image>

在哪里? <image> 是调色板图像的文件名(不带扩展名)。要强制使用Web安全调色板,请使用语法 palette=safe .有关详细信息,请参阅 调色板图像

财产名称

这个 propertyName 参数指定响应中包含哪些属性 GetFeatureInfo 操作。语法与WFS中的相同 GetFeature 操作。对于单层请求,语法为:

propertyName=name1,...,nameN

对于多个层,语法为::

propertyName=(nameLayer11,...,nameLayer1N)...(name1LayerN,...,nameNLayerN)

属性的性质取决于层类型:

  • 对于向量层,名称指定特征属性。

  • 对于栅格图层,名称指定标注栏。

  • 对于级联的WMS层,名称指定由远程服务器返回的GML属性。

瓦片

当使用瓦片客户机(如Openlayers)时,元瓦片可防止重复标签的问题。当使用meta-tiling时,图像会被渲染,然后分割成较小的图块(默认情况下为3x3模式),然后才能使用。为了使meta-tiling工作,tile大小 must 设置为256x256像素, tiledtilesorigin 必须指定参数。

这个 tiled 参数控制是否使用元瓦片。语法是::

tiled=[true|false]

要调用元瓦片,请使用 tiled=true .

替里索林

这个 tilesorigin 元瓦片还需要参数。语法是::

tilesorigin=x,y

在哪里? xy 是瓦片网格系统左下角(“原点”)的坐标。

Openlayers示例

在Openlayers中,指定 tilesorigin 直接引用地图范围。

警告

如果动态修改地图范围,则 tilesorigin 必须相应地更新每个元瓦片层的。

以下代码显示如何指定元瓦片参数:

 1 var options = {
 2     ...
 3     maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
 4     ...
 5 };
 6 map = new OpenLayers.Map('map', options);
 7
 8 tiled = new OpenLayers.Layer.WMS(
 9     "Layer name", "http://localhost:8080/geoserver/wms",
10     {
11         srs: 'EPSG:4326',
12         width: 391,
13         styles: '',
14         height: 550,
15         layers: 'layerName',
16         format: 'image/png',
17         tiled: true,
18         tilesorigin: map.maxExtent.left + ',' + map.maxExtent.bottom
19     },
20     {buffer: 0}
21 );

鳞片法

这个 scaleMethod 参数控制几何服务器计算比例分母的方式两个可能的值是:

  • OGC (默认):比例分母根据OGC SLD规范计算,其中

    为实现互操作性而采用简化公式

  • Accurate :使用完整表达式根据地理位置计算比例分母

    考虑到地球椭球形状的数据

这两种方法倾向于返回在赤道附近彼此相当接近的值,但当纬度接近两极时,它们确实会产生较大的差异。

插入

这个 interpolations 参数允许选择特定的重采样(插值)方法。它可以用于 GetMap 操作。

如果在 layers 参数,然后可以为每个层指定单独的插值方法,用逗号分隔。语法是::

interpolations=method1,method2,...

方法<n>值可以是以下值之一:

  • 最近邻

  • bilinear

  • bicubic

如果相关层必须使用默认方法,则为空。

该参数允许重写全局 WMS栅格渲染选项 设置(参见 WMS Settings 更多信息),以及特定于层的 默认插值法 发布参数(请参见 Layers 有关更多信息),请逐层查看。

削减

这个 clip 参数可用于使用由有效WKT字符串表示的多边形掩码剪裁WMS响应。

这里有两个例子,第一个使用WKT,第二个使用EWKT:

clip=POLYGON((-14.50804652396198 55.579454354599356,34.53492222603802 55.579454354599356,34.53492222603802 32.400173313532584,-14.50804652396198 32.400173313532584,-14.50804652396198 55.579454354599356))
clip=srid=900913;POLYGON ((-1615028.3514525702 7475148.401208023, 3844409.956787858 7475148.401208023, 3844409.956787858 3815954.983140064, -1615028.3514525702 3815954.983140064, -1615028.3514525702 7475148.401208023))

备注

无论WMS版本如何,WKT的轴顺序都必须是东/北。对于具有复杂特征的图层,当前将忽略此参数。