Kepler.gl строится вокруг концепции временного измерения как полноценной оси визуализации. Любой слой, фильтр или анимационный режим опирается на явное или неявное наличие временного поля в данных. Временная анимация в этой системе не является отдельным модулем — она встроена в состояние фильтров и в логику рендеринга слоёв.
Основной принцип заключается в том, что временная шкала управляет видимостью и поведением объектов на карте через интервал отображения и параметры проигрывания.
Ключевое требование — наличие поля времени в одном из поддерживаемых форматов:
При загрузке данных Kepler.gl пытается автоматически определить тип поля, но корректная работа анимации зависит от строгой типизации.
Типичная структура записи:
Ошибки в формате времени приводят к невозможности построения временного фильтра или к деградации анимации до статического отображения.
Вся логика временного движения в Kepler.gl реализована через фильтры
visState.filters. Каждый фильтр может быть привязан к
временной шкале и включать режим анимации.
Основные параметры временного фильтра:
timeRangeПоведение временного фильтра можно представить как движущееся окно, которое последовательно проходит по диапазону значений времени, изменяя набор отображаемых объектов.
Ключевые режимы окна:
full — отображение полного накопленного диапазонаincremental — добавление данных без удаления
предыдущихpoint — отображение строго одного момента времениИнтерфейс временной анимации строится вокруг временного слайдера, который управляет:
Слайдер синхронизирован с состоянием Redux-структуры Kepler.gl, где каждое изменение положения приводит к пересчёту видимых объектов.
При проигрывании:
Point Layer является базовым инструментом для временной визуализации. Каждый объект имеет момент появления и исчезновения в зависимости от временного фильтра.
Поведение точек во времени определяется:
При высокой плотности данных используется кластеризация, которая также может учитывать временной фактор, формируя динамические кластеры.
Отдельный класс временной визуализации — Trip Layer, предназначенный для отображения траекторий движения.
Структура данных для траекторий:
В отличие от статических точек, Trip Layer формирует непрерывную линию движения, где каждая точка траектории активируется последовательно.
Особенности:
Внутренне траектория интерпретируется как временной граф, где каждое ребро активируется в зависимости от текущего времени анимации.
Система анимации в Kepler.gl предоставляет набор управляющих параметров:
Скорость влияет не на данные напрямую, а на шаг изменения временного окна между кадрами рендера.
Вся временная логика хранится в глобальном состоянии приложения. Изменения происходят через действия (actions), которые обновляют:
Типичная последовательность обновления:
При этом Kepler.gl минимизирует перерасчёты, используя мемоизацию и частичное обновление геометрии.
Для повышения визуальной плавности используется интерполяция между временными значениями. Это особенно важно при:
Интерполяция применяется:
При использовании строковых или ISO-дат необходимо учитывать:
Ошибки в нормализации приводят к сдвигам траекторий и разрыву временной логики отображения.
Рекомендуется приводить все данные к UTC перед загрузкой в Kepler.gl, чтобы исключить неоднозначность интерпретации.
При работе с большими датасетами временная анимация становится ресурсоёмкой задачей. Основные узкие места:
Оптимизации включают:
Каждый слой Kepler.gl может по-разному реагировать на временные изменения:
Таким образом, временная анимация влияет не только на видимость, но и на саму структуру визуализации, формируя динамическую карту состояний данных.