渲染的地图/动画下载过程¶
这些过程允许下载大型地图和动画。
呈现的下载过程¶
地图和动画下载使用一组通用参数:
bbox
:地理参考边界框,控制输出区域和所需投影
decoration
:要添加到地图顶部的装饰布局的名称
time
:一个WMStime
用于驱动跨地图层的时间选择和控制动画中帧生成的规范
width
和height
:输出贴图/动画的大小(与边界框结合,还控制输出贴图比例)
layer
:从客户端角度看的层规范列表(因此,一个层可以由多个服务器端层组成)。当使用dwn:DecorationName层选项时,它允许定义在将装饰应用于层时将使用的特定布局。当声明了多个图层时,它允许在结果图像上渲染多个图例。
headerheight
:在渲染贴图顶部分配的标头空间的高度大小。这是一个可选参数,强制缩小贴图视图高度,以避免将标题重叠在贴图上。与层规范选项的使用相结合,允许在结果图像的顶部对装饰器进行分组。
层规格¶
层规范是由三部分组成的XML结构:
名称:以逗号分隔的层名称列表(最终只有一个)
功能:链接到功能文档(可选,在瞄准远程WMS层时使用)
参数(key,value):要添加到该层表示的WMS请求中的额外参数(例如。,
elevation
,CQL_FILTER
,env
)
例如:
<wps:ComplexData xmlns:dwn="http://geoserver.org/wps/download">
<dwn:Layer>
<dwn:Capabilities>http://demo.geo-solutions.it/geoserver/ows?service=wms&version=1.1.1&request=GetCapabilities</dwn:Name>
<dwn:Name>topp:states</dwn:Name>
<dwn:Parameter key="CQL_FILTER"><![CDATA[PERSONS > 1000000]]></dwn:Parameter>
</dwn:Layer>
</wps:ComplexData>
下载地图请求示例¶
地图下载过程只有上面描述的基本输入,即 time
参数是可选的。地图下载过程使用WMS机器生成输出,但不受WMS服务限制(使用WPS进程安全性可以限制此过程中的宽度和高度)。
针对一组本地层发布的下载地图可以如下所示:
<?xml version="1.0" encoding="UTF-8"?> <wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd"> <ows:Identifier>gs:DownloadMap</ows:Identifier> <wps:DataInputs> <wps:Input> <ows:Identifier>bbox</ows:Identifier> <wps:Data> <wps:BoundingBoxData crs="EPSG:4326"> <ows:LowerCorner>0.237 40.562</ows:LowerCorner> <ows:UpperCorner>14.593 44.55</ows:UpperCorner> </wps:BoundingBoxData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>time</ows:Identifier> <wps:Data> <wps:LiteralData>2008-10-31T00:00:00.000Z</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>width</ows:Identifier> <wps:Data> <wps:LiteralData>200</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>height</ows:Identifier> <wps:Data> <wps:LiteralData>80</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>layer</ows:Identifier> <wps:Data> <wps:ComplexData xmlns:dwn="http://geoserver.org/wps/download"> <dwn:Layer> <dwn:Name>giantPolygon</dwn:Name> <dwn:Parameter key="featureId">giantPolygon.0</dwn:Parameter> </dwn:Layer> </wps:ComplexData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>layer</ows:Identifier> <wps:Data> <wps:ComplexData xmlns:dwn="http://geoserver.org/wps/download"> <dwn:Layer> <dwn:Name>watertemp</dwn:Name> </dwn:Layer> </wps:ComplexData> </wps:Data> </wps:Input> </wps:DataInputs> <wps:ResponseForm> <wps:RawDataOutput mimeType="image/png"> <ows:Identifier>result</ows:Identifier> </wps:RawDataOutput> </wps:ResponseForm> </wps:Execute>
在这个例子中,层可以是一个单独的层,“name”等于“giantpolygon,watertermp”。
下载动画请求示例¶
下载动画包含所有基本参数和以下变量/添加:
时间:时间参数是必需的,可以作为周期性的范围提供。
start/stop/period
,或作为逗号分隔的时间列表,t1,t2,…,tn
fps:帧/秒(默认为1)
示例动画请求可以如下所示:
<?xml version="1.0" encoding="UTF-8"?> <wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd"> <ows:Identifier>gs:DownloadAnimation</ows:Identifier> <wps:DataInputs> <wps:Input> <ows:Identifier>bbox</ows:Identifier> <wps:Data> <wps:BoundingBoxData crs="EPSG:4326"> <ows:LowerCorner>-180 -90</ows:LowerCorner> <ows:UpperCorner>180 90</ows:UpperCorner> </wps:BoundingBoxData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>decoration</ows:Identifier> <wps:Data> <wps:LiteralData>formattedTimestamper</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>time</ows:Identifier> <wps:Data> <wps:LiteralData>2004-02-01,2004-03-01,2004-04-01,2004-05-01</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>width</ows:Identifier> <wps:Data> <wps:LiteralData>271</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>height</ows:Identifier> <wps:Data> <wps:LiteralData>136</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>fps</ows:Identifier> <wps:Data> <wps:LiteralData>0.5</wps:LiteralData> </wps:Data> </wps:Input> <wps:Input> <ows:Identifier>layer</ows:Identifier> <wps:Data> <wps:ComplexData xmlns:dwn="http://geoserver.org/wps/download"> <dwn:Layer> <dwn:Name>sf:bmtime</dwn:Name> </dwn:Layer> </wps:ComplexData> </wps:Data> </wps:Input> </wps:DataInputs> <wps:ResponseForm> <wps:RawDataOutput mimeType="video/mp4"> <ows:Identifier>result</ows:Identifier> </wps:RawDataOutput> </wps:ResponseForm> </wps:Execute>
这个 formattedTimestamper
装饰确保帧时间包含在输出动画中,如下所示:
<layout> <decoration type="text" affinity="bottom,right" offset="6,6" size="auto"> <option name="message"><![CDATA[ <#setting datetime_format="yyyy-MM-dd'T'HH:mm:ss.SSSX"> <#setting locale="en_US"> <#if time??> ${time?datetime?string["dd-MM-yyyy"]} </#if>]]></option> <option name="font-family" value="Bitstream Vera Sans"/> <option name="font-size" value="12"/> <option name="halo-radius" value="2"/> </decoration> </layout>
装饰布置图¶
decoration
参数指定用于修饰地图的布局的文件名(不带扩展名)。