WeatherLayers
DemoIntegrationsDocsStatus
  • Overview
  • WeatherLayers GL
    • Quick Start
    • Layers
      • Particle Layer
      • Raster Layer
      • Contour Layer
      • HighLow Layer
      • Front Layer
      • Grid Layer
      • Data Loading
      • Data Properties
      • Style Properties
    • Controls
      • Legend Control
      • Timeline Control
      • Tooltip Control
      • Attribution Control
      • Logo Control
      • Control
    • Types
    • Functions
    • Data Sources
    • Security
    • Troubleshooting
    • Pricing
    • Changelog
    • Roadmap
  • WeatherLayers Cloud
    • Quick Start
    • Client
    • Types
    • Security
    • Troubleshooting
    • Datasets
    • Pricing
    • Changelog
    • Roadmap
  • Contact
Powered by GitBook
On this page
  • Example
  • Constructor
  • Config Properties
  • Methods
  1. WeatherLayers GL
  2. Controls

Timeline Control

Last updated 10 months ago

Timeline control allows playing datetimes as animation with linear interpolation between two subsequent datetimes

Example

import * as WeatherLayers from 'weatherlayers-gl';

const files = [
  { datetime: '2021-09-01T20:00:00Z',  url: '...' },
  { datetime: '2021-09-01T21:00:00Z',  url: '...' },
  { datetime: '2021-09-01T22:00:00Z',  url: '...' },
];
const datetimes = files.map(file => file.datetime);
let currentDatetime = datetimes[0];
const timelineControl = new WeatherLayers.TimelineControl({
  datetimes: datetimes,
  datetime: currentDatetime,
  onPreload: datetimes => {
    // preload requested data
    return Promise.all(datetimes.map(datetime => {
      return WeatherLayers.loadTextureData(files.find(file => file.datetime === datetime).url);
    });
  },
  onUpdate: datetime => {
    // update displayed data
    currentDatetime = datetime;
    update();
  },
});
timelineControl.addTo(document.getElementById('controls'));

async function update() {
  const startDatetime = WeatherLayers.getClosestStartDatetime(datetimes, currentDatetime);
  const endDatetime = WeatherLayers.getClosestEndDatetime(datetimes, currentDatetime);
  const imageWeight = WeatherLayers.getDatetimeWeight(startDatetime, endDatetime, currentDatetime);
  const image = await WeatherLayers.loadTextureData(files.find(file => file.datetime === startDatetime).url);
  const image2 = await WeatherLayers.loadTextureData(files.find(file => file.datetime === endDatetime).url);
  
  // update layers
  deckgl.setProps({
    layers: [
      new WeatherLayers.XxxLayer({
        image: image,
        image2: image2,
        imageWeight: imageWeight,
      }),
    ],
  });
}
update();

Constructor

TimelineControl(config: TimelineConfig = {})

Config Properties

width

Type: number, optional

Default: 300

Width of the control.

datetimes

Datetimes to be displayed in the timeline.

datetimeInterpolate

Type: boolean, optional

Default: true

datetime

Current datetime selected in the timeline.

onPreload

Preload callback, use for preloading requested data.

If an array of promises is returned, the progress is displayed in the loader text.

onUpdate

Update callback, use for updating displayed data.

fps

Type: number, optional

Default: 15

Timeline animation speed, in frames per seconds. Lower number is slower animation, higher number is faster animation.

Methods

toggle(running?: boolean): Promise<void>

Toggles (starts or pauses) the timeline animation.

Before starting, it calls and awaits onPreload with all datetimes.

start(): Promise<void>

Starts the timeline animation.

Before starting, it calls and awaits onPreload with all datetimes.

pause(): void

Pauses the timeline animation.

stop(): void

Stops (pauses and resets) the timeline animation.

reset(): void

Resets the timeline animation.

stepBackward(): Promise<void>

Steps backward in the timeline animation.

Before stepping, it calls and awaits onPreload with datetimes required to display the requested step.

stepForward(): Promise<void>

Steps forward in the timeline animation.

Before stepping, it calls and awaits onPreload with datetimes required to display the requested step.

Type: [], required

Type: , required

Type: (datetimes: []) => Promise<void>[] | Promise<void>, optional

Type: (datetime: ) => void, optional

See for common Control methods.

Control
Timeline Control
DatetimeISOString
DatetimeISOString
DatetimeISOString
DatetimeISOString