Interface TemporalPlaybackOptionsExperimental

interface TemporalPlaybackOptions {
    apply?: ((window: TemporalWindow) => void | Promise<void>);
    baseQuery?: Readonly<Record<string, unknown>> & {
        where?: string;
    };
    extent: readonly [TemporalInstant, TemporalInstant];
    formatWhere?: ((window: TemporalWindow, timeField: string) => string);
    frameIntervalMs?: number;
    handle?: TemporalFilterHandle;
    layer?: {
        layerIds: readonly string[];
        map: TemporalFilterMap;
    };
    loop?: boolean;
    stepMs?: number;
    timeField?: string;
    windowMs: number;
}

Properties

apply?: ((window: TemporalWindow) => void | Promise<void>)

Custom sink; use instead of (or in addition to) handle/layer.

baseQuery?: Readonly<Record<string, unknown>> & {
    where?: string;
}

Extra query properties merged under the generated where (handle binding).

extent: readonly [TemporalInstant, TemporalInstant]

Full playable time extent as [start, end].

formatWhere?: ((window: TemporalWindow, timeField: string) => string)

Override the generated where clause (handle binding). The default is <timeField> >= <startMs> AND <timeField> < <endMs>.

frameIntervalMs?: number

Wall-clock delay between frames.

500

Bridge binding: a MountedSource (or anything with a Query-shaped setFilter). Each window becomes a where clause on timeField.

layer?: {
    layerIds: readonly string[];
    map: TemporalFilterMap;
}

MapLibre binding: client-side setFilter over already-materialized layers. Each window becomes a numeric range filter on timeField composed (all) with the layer's filter at bind time, so bridge geometry filters survive. Requires numeric (epoch ms) properties.

loop?: boolean

Restart from the extent start after the last window.

false
stepMs?: number

How far the window advances per frame.

windowMs (non-overlapping windows)

timeField?: string

Feature property holding the feature's time. Required with handle/layer.

windowMs: number

Window length in milliseconds.