TimeDynamicImagery
是 CesiumJS 中的一个实用程序类,用于管理不同时间段的动态图像,使其在时间序列中按照预定顺序显示。
TimeDynamicImagery
对象可通过 Cesium.TimeDynamicImagery
构造函数创建,接受一个参数对象。其中必须包含 times
和 data
属性,分别代表不同时间点和对应图像数据。
const times = [new Date(2022, 0, 1).toISOString(), new Date(2022, 0, 2).toISOString()];
const data = [new Blob(['第一天的图片']), new Blob(['第二天的图片'])];
const timeDynamicImagery = new Cesium.TimeDynamicImagery({times, data});
times
:时间序列,由日期时间字符串组成。data
:对应时间点的图像数据,可以是图片地址、Blob
、File
等。index
:当前时间点的索引。dataUrls
:图像数据的地址,用于在加载器中实现延迟加载策略(仅支持设置单一地址,在所有图像数据的地址相同的情况下使用)。getCurrentTime
:获取当前时间点,返回日期时间字符串。getCurrentData
:获取当前时间点的图像数据。getCurrentIndex
:获取当前时间点的索引。setCurrentIndex
:设置当前时间点的索引。next
:播放下一帧图像,切换到下一个时间点。previous
:播放上一帧图像,切换到前一个时间点。play
:循环播放动态图像。pause
:暂停动态图像播放。reset
:重置动态图像,回到序列的初始状态。TimeDynamicImagery
适用于对时间序列动态数据进行可视化的场景。例如,构建动态的气象数据可视化、观测站历史记录可视化等。
const times = [new Date(2022, 0, 1).toISOString(), new Date(2022, 0, 2).toISOString()];
const data = [new Blob(['第一天的图片']), new Blob(['第二天的图片'])];
const timeDynamicImagery = new Cesium.TimeDynamicImagery({times, data});
viewer.scene.postRender.addEventListener(() => {
timeDynamicImagery.next(); // 播放下一帧图像
});
timeDynamicImagery.play(); // 循环播放动态图像
TimeDynamicImagery
是 CesiumJS 1.76 版本新增的特性,需要在支持该版本及以上的浏览器中使用。另外,其对 Blob
类型的支持在某些浏览器版本中可能存在限制。