import { BaseBuilder } from 'gpx-builder'; const { Point, PointOptions } = BaseBuilder.MODELS; export interface OsmAndPointOptions extends PointOptions { atemp?: number; bearing?: number; cad?: number; course?: number; depth?: number; hr?: number; speed?: number; wtemp?: number; } export class OsmAndPoint extends Point { /** * Extended garmin point. * * @see https://www8.garmin.com/xmlschemas/TrackPointExtensionv2.xsd */ public constructor( lat: number, lon: number, options: OsmAndPointOptions = {}, ) { super(lat, lon, options); const { background, color, icon } = options; const ext = 'osmand'; const data = { ...(typeof background === 'string' ? { [`${ext}:background`]: background } : {}), ...(typeof color === 'string' ? { [`${ext}:color`]: color } : {}), ...(typeof icon === 'string' ? { [`${ext}:icon`]: icon } : {}), }; this.extensions = { ...this.extensions, ...(Object.keys(data).length > 0 ? data : {}), }; } }