ArcGIS Time Animation 是一项用于处理时间数据的技能,聚焦于 ArcGIS Maps SDK for JavaScript 中的时间感知能力。
用途 该技能适用于时间数据、时间感知图层、时间过滤和动画控制等场景。可用于对随时间变化的数据进行动画播放、按日期范围过滤,以及配置时间轴等交互控件。
主要能力
- TimeExtent:表示带起止日期的时间范围;也可用起止相同的瞬时时间;将 view.timeExtent 设为 null 可移除时间过滤、显示全部数据。
- TimeInterval:表示一段时间长度,支持 milliseconds、seconds、minutes、hours、days、weeks、months、years、decades、centuries 等单位。
- TimeSlider:可作为地图组件(arcgis-time-slider)或核心 API 控件使用;支持属性 fullTimeExtent、timeExtent、mode、stops、playRate、loop、layout、disabled 等。
- 时间模式:instant、time-window、cumulative-from-start、cumulative-from-end。
- 自定义 stops:可按 interval(间隔)、dates(指定日期)或 count(均匀分布数量)配置。
- 播放控制与事件监听:play、stop,以及 watch timeExtent、watch viewModel.state。
- 自定义标签:通过 tickConfigs 与 labelFormatFunction 设置刻度和标签格式。
- 时间感知图层:FeatureLayer、ImageryLayer、MapImageLayer、StreamLayer 可配置 timeInfo(startField、endField、fullTimeExtent、interval、trackIdField)。
- 按时间过滤:可通过 view.timeExtent 过滤所有时间感知图层,或通过 layerView.filter 过滤指定图层;也可在查询中使用 query.timeExtent。
- 动画模式:与统计结合、基于时间的高亮、手动动画循环。
- 其他:TimeZoneLabel 组件;图形通过 visibilityTimeExtent 控制时间可见性。
使用方式 支持两种导入模式。ESM(npm)示例: import TimeExtent from "@arcgis/core/TimeExtent.js"; import TimeInterval from "@arcgis/core/TimeInterval.js"; import TimeSlider from "@arcgis/core/widgets/TimeSlider.js"; CDN(动态导入)示例: const TimeExtent = await $arcgis.import("@arcgis/core/TimeExtent.js"); const TimeInterval = await $arcgis.import("@arcgis/core/TimeInterval.js"); const TimeSlider = await $arcgis.import("@arcgis/core/widgets/TimeSlider.js"); TimeSlider 可从图层初始化:先 await layer.load(),再读取 layer.timeInfo.fullTimeExtent 与 layer.timeInfo.interval 进行配置。
适用场景 适用于需要对时间序列空间数据进行动画展示、按日期范围筛选地图要素、在地图中加入可播放的时间轴控件,以及处理影像、地图服务、流数据等时间感知图层的场景。
限制与注意事项
- 时区问题:日期受 JavaScript 本地时区影响,建议使用 UTC 日期以保持一致。
- 图层必须加载:timeInfo 仅在 await layer.load() 之后可用。
- 需设置视口的 timeExtent 才能过滤所有时间感知图层。
- view.timeExtent = null 会移除时间过滤。
- 性能:时间范围过大可能返回大量要素,建议尽量使用服务器端查询。
- TimeSlider 需要配置 stops 才能定义滑块位置。
关于收费、价格、平台支持等具体信息,资料暂未提供。