MS RFC 111:MapCache对动画时间序列的支持¶
- 日期
2014/05
- 作者
杰罗姆·维伦纽夫·拉鲁切
- 联系方式
- 状态
草稿
- 版本
MAPCACHE 1.4
- 最后更新
2014/05/14
1。动机¶
当前,如果在请求中使用TimeDimension在tileset上指定时间帧,则mapcache只需将所有帧堆叠在一起。显示时间序列的另一种方法是生成不同帧的动画图像。此实现将使用GIF格式创建时间序列的动画版本。
2。实施细节¶
这种实现只适用于单个图块请求,就像Openlayers中的单个图块映射一样,因为无法在一个地图视图上同步多个GIF图块的动画,因此播种多个图块不会产生好的结果。
2.1 GIF编码¶
使用giflib的新gif格式输出
在mapcache中使用new format write_frames函数来编写动画gif
2.2动画配置¶
向时间维度添加动画需要两个新属性,并使用GIF输出格式。
<timedimension type="sqlite" default="2012-01-01" animate="true" delay="150">
<dbfile>mapcache-time.sqlite</dbfile>
<query>
select
strftime('%Y-%m-%d',start_time)
from
time
where
source_id=:tileset
and
start_time>=datetime(:start_timestamp,'unixepoch')
and
start_time<=datetime(:end_timestamp,'unixepoch')
order by
end_time
</query>
</timedimension>
<service type="wms" enabled="true">
<full_wms>assemble</full_wms>
<resample_mode>bilinear</resample_mode>
<format>GIF</format>
<maxsize>4096</maxsize>
</service>
“animate”属性指定是否要为TimeDimension设置动画。如果它不存在或设置为假,我们就不进行动画制作。
“delay”属性指定两帧之间的延迟(以百分之一秒为单位)。如果它不存在,则默认为100;如果它存在,但“animate”属性不存在,则它将被忽略。它也必须大于零。
您还必须将输出格式(例如在服务中)设置为gif。如果您要求一个没有gif格式的动画tileset,mapcache将生成一条错误消息。