29 lines
1.9 KiB
TypeScript
29 lines
1.9 KiB
TypeScript
// Журнал перемещений (поездок). Демо-данные; в проде — Traccar /reports/trips.
|
|
export interface Trip {
|
|
id: string;
|
|
entityId: string;
|
|
start: string; // ISO
|
|
end: string; // ISO
|
|
from: string;
|
|
to: string;
|
|
distanceKm: number;
|
|
durationMin: number;
|
|
maxSpeed: number;
|
|
avgSpeed: number;
|
|
route: Array<[number, number]>; // полилиния маршрута для карты
|
|
}
|
|
|
|
const h = (n: number) => new Date(Date.now() - n * 3600000).toISOString();
|
|
|
|
export const trips: Trip[] = [
|
|
{ id: 't1', entityId: 'veh-avar', start: h(6), end: h(5.2), from: 'База «Тэмпельхоф»', to: 'Пятигорск, рынок', distanceKm: 18.4, durationMin: 48, maxSpeed: 78, avgSpeed: 41, route: [[44.07, 43.05], [44.061, 43.058], [44.052, 43.064], [44.043, 43.071]] },
|
|
{ id: 't2', entityId: 'veh-avar', start: h(4.5), end: h(3.7), from: 'Пятигорск, рынок', to: 'Ессентуки, склад', distanceKm: 22.1, durationMin: 49, maxSpeed: 84, avgSpeed: 38, route: [[44.043, 43.071], [44.05, 43.0], [44.05, 42.93], [44.045, 42.86]] },
|
|
{ id: 't3', entityId: 'veh-avar', start: h(2), end: h(1.4), from: 'Ессентуки, склад', to: 'База «Тэмпельхоф»', distanceKm: 31.6, durationMin: 37, maxSpeed: 91, avgSpeed: 51, route: [[44.045, 42.86], [44.052, 42.95], [44.062, 43.0], [44.07, 43.05]] },
|
|
{ id: 't4', entityId: 'veh-agp22', start: h(8), end: h(6.5), from: 'Поле №3', to: 'МТМ (ремонт)', distanceKm: 6.2, durationMin: 90, maxSpeed: 24, avgSpeed: 9, route: [[44.02, 43.11], [44.025, 43.1], [44.03, 43.095]] },
|
|
{ id: 't5', entityId: 'veh-agp22', start: h(3), end: h(2.2), from: 'МТМ', to: 'Поле №5', distanceKm: 8.8, durationMin: 48, maxSpeed: 28, avgSpeed: 12, route: [[44.03, 43.095], [44.038, 43.085], [44.045, 43.08]] },
|
|
];
|
|
|
|
export function tripsOf(entityId: string): Trip[] {
|
|
return trips.filter((t) => t.entityId === entityId);
|
|
}
|