/** * TripsLayer 팩토리 — deck.gl/geo-layers의 TripsLayer 래퍼 * * 어구 멤버 궤적 애니메이션 (fade trail) 전용. */ import { TripsLayer } from '@deck.gl/geo-layers'; export interface TripsData { id: string; path: [number, number][]; timestamps: number[]; color: [number, number, number, number]; } /** * 궤적 애니메이션 레이어 생성. * @param id — 레이어 ID * @param data — MMSI별 궤적 데이터 * @param currentTime — startTime 기준 상대 시간 (ms) * @param trailLength — 페이드 길이 (ms, 기본 1시간) */ export function createTripsLayer( id: string, data: TripsData[], currentTime: number, trailLength = 3_600_000, ) { return new TripsLayer({ id, data, getPath: (d) => d.path, getTimestamps: (d) => d.timestamps, getColor: (d) => d.color, currentTime, fadeTrail: true, trailLength, widthMinPixels: 2, widthMaxPixels: 4, jointRounded: true, capRounded: true, }); }