WMS动画

概述

标准WMS只能生成静态映射。在许多用例中,生成动画是很重要的。一个明显的例子是基于时间的动画。其他用途包括基于高程的动画,改变SQL视图或SLD替换参数的值,或者改变生成的地图的范围以生成移动视区的外观。

此功能由 WMS动画 提供. WMS动画的工作方式与WMS反射镜类似。它使用提供的部分WMS请求作为模板,并且 动画师参数 用于生成和执行一系列完整的请求。渲染的地图图像合并为一个输出图像(格式支持多帧图像)。

通过使用 wms/animate 请求路径。任何WMS参数都可以设置动画,包括嵌套的参数,如 SLD environment variables . 要定义动画的外观,提供了其他参数:

  • 阿帕拉姆 指定将在每个帧的请求中更改的参数的名称。这可以是任何wms参数,例如 layerscql_filterbboxstyle 等等。嵌套参数(如 format_optionsenvview_params 参数),使用以下语法支持 param:name (例如, view_params:year

  • 阿瓦卢 是动画参数为每个帧所具有的值的逗号分隔列表。如果值包含逗号,则必须使用反斜杠对其进行转义。(例如,当提供bbox值时会发生这种情况。)

动画师解析输入值并使用字符串替换生成要执行的WMS请求序列。执行每个生成的请求以生成一个帧。由调用者来确保提供的动画参数产生有效的WMS请求。

例如,要生成一个向东滚动的视图层的动画,WMS BBOX参数给出了一系列值 -90,40,-60,70-80,40,-60,70-70,40,-50,70 (注意bbox值中逗号的转义)::

http://localhost:8080/geoserver/wms/animate
?layers=topp:states
&aparam=bbox
&avalues=-90\,40\,-60\,70,-80\,40\,-60\,70,-70\,40\,-50\,70

对于嵌套参数的示例,假设存在名为 selection 使用SLD变量 color . 以下请求创建一个动画地图,其中选择颜色在红色、绿色和蓝色之间变化:

http://localhost:8080/geoserver/wms/animate
?layers=topp:states,topp:states
&styles=polygon,selection
&aparam=env:color
&avalues=FF0000,00FF00,0000FF

使用WMS动画

要调用WMS Animator,请指定路径 wms/animate 而不是 wms 在getmap请求中。

每个动画师请求都必须指定 layersaparamavalues 参数。请求中也可以使用任何其他有效的WMS参数。如果省略了任何必要的参数,则动画制作程序将为它们提供合理的默认值。使用以下默认值:

Parameter

默认值

request

getmap

service

wms

version

1.1.1

format

image/png

width

512

height

512 如果未指定宽度

srs

EPSG:4326 ,或所有层通用的SRS

bbox

指定层的边界

styles

为指定层配置的默认样式

这些参数的详细信息如下:

:这是唯一必需的标准参数。它是输出映射中要包含的层的逗号分隔列表。

格式 :默认输出格式为 image/png . 支持的值是 image/jpeg (适用于栅格背景) image/png8 (8位颜色,较小的文件)和 image/gif

警告

要生成实际的动画图像,格式必须支持动画。目前GeoServer中唯一提供的是 image/gif;subtype=animated

宽度 :描述图像的宽度。它默认为512像素,可以根据指定的高度和边界框的纵横比进行计算。

高度 :描述图像的高度。它可以根据指定的宽度和边界框的纵横比进行计算。

bbox :指定映射帧的范围。默认的边界框由指定图层边界的并集确定。(例如,如果一个图层显示洛杉矶,另一个图层显示纽约,则默认地图显示美国大部分地区。边界框还确定地图的纵横比。如果只有一个 widthheight 则另一个将根据边界框的纵横比确定。

风格 :默认值是在GeoServer中为中指定的图层配置的默认样式 layers 参数。这可以通过提供以逗号分隔的样式名列表(服务器必须知道)来覆盖。

srs :如果所有层共享相同的SRS,则此值用作默认值。否则,默认值为爱普生:4326(工作组84)。

动画选项

动画师提供控制循环和帧速度的选项。这些是使用 format_options WMS parameter . 可用选项包括:

Option

Description

gif_loop_continuously

如果 true 动画将连续循环。默认值是 false .

gif_frames_delay

指定帧延迟(毫秒)。默认值为1000 ms。

gif_disposal

指定显示新帧后如何处理前一个GIF帧。有效值为 nonedoNotDisposebackgroundColorprevious . 默认值为 none .

例1

请求层 topp:states ,使用默认样式 (demographic ),宽度(512像素)和高度(根据纵横比调整)。这个 aparam=bbox 参数指定输出动画有两个帧,一个使用全世界范围,另一个使用美国范围。这会产生放大的效果:

http://localhost:8080/geoserver/wms/animate
?layers=topp:states
&format=image/gif;subtype=animated
&aparam=bbox
&avalues=-180\,-90\,180\,90,-125\,25\,-67\,50

例2

请求层 topp:statessf:restricted 使用 format_options=gif_loop_continuosly:true 请求无限循环动画。输出映射使用默认样式、指定的宽度(640像素)和自动调整为纵横比的高度:

http://localhost:8080/geoserver/wms/animate
?layers=topp:states,sf:restricted
&format=image/gif;subtype=animated
&aparam=bbox
&avalues=-180\,-90\,180\,90,-125\,25\,-67\,50
&format_options=gif_loop_continuosly:true
&width=640

例3

以下请求使用 format_options 属于 gif_loop_continuosly:truegif_frames_delay:10 要快速连续地旋转地图图像:

http://localhost:8080/geoserver/wms/animate
?layers=topp:states,sf:restricted
&format=image/gif;subtype=animated
&aparam=angle
&avalues=0,45,90,135,180,225,270,365
&format_options=gif_loop_continuosly:true;gif_frames_delay:10
&width=640

将帧参数显示为装饰

可以用 avalue 使用 WMS装饰 text 装饰。当前动画参数值可以通过 avalue 环境变量。(此环境变量也可用于 SLD中的变量替换

下面是一个使用装饰的示例,其中显示了帧参数值:

http://localhost:8080/geoserver/wms/animate
?layers=topp%3Aworld
&aparam=time
&avalues=2004-01-01T00:00:00.000Z,2004-02-01T00:00:00.000Z
&format=image/gif;subtype=animated
&format_options=layout:message

它使用以下装饰布局,位于 layouts/message.xml

<layout>
  <decoration type="text" affinity="bottom,right" offset="6,6">
    <option name="message" value="${avalue}"/>
    <option name="font-size" value="12"/>
    <option name="font-family" value="Arial"/>
    <option name="halo-radius" value="2"/>
  </decoration>
</layout>

指定WMS动画程序默认行为

GeoServer Adinistrator GUI允许为WMS Animator指定一些限制和默认选项。设置是在 Services > WMS 配置界面如下:

../_images/animator_wms_params.jpg

WMS动画制作默认设置

前三个选项设置动画输出的服务器限制。可以设置 最大帧数 动画可以包含 最长渲染时间 制作动画和 最大尺寸 整个动画。

默认动画 帧延迟 (以ms表示) 循环行为处置方法 也可以设置。这些值可以通过使用 format_options 参数如上所述。

Previous: WMS反射镜