@obstinado/gpx-builder
Version:
Builder of GPX files
59 lines (55 loc) • 1.39 kB
JavaScript
import Point from '../../BaseBuilder/models/Point.js';
class GarminPoint extends Point {
/**
* Extended garmin point.
*
* @see https://www8.garmin.com/xmlschemas/TrackPointExtensionv2.xsd
*/
// eslint-disable-next-line complexity
constructor(lat, lon, options = {}) {
super(lat, lon, options);
const {
hr,
cad,
speed,
atemp,
wtemp,
depth,
course,
bearing
} = options;
const extensionPrefix = 'gpxtpx';
const trackPointExtension = `${extensionPrefix}:TrackPointExtension`;
const data = { ...(hr ? {
[`${extensionPrefix}:hr`]: hr
} : {}),
...(cad ? {
[`${extensionPrefix}:cad`]: cad
} : {}),
...(speed ? {
[`${extensionPrefix}:speed`]: speed
} : {}),
...(atemp ? {
[`${extensionPrefix}:atemp`]: atemp
} : {}),
...(wtemp ? {
[`${extensionPrefix}:wtemp`]: wtemp
} : {}),
...(depth ? {
[`${extensionPrefix}:depth`]: depth
} : {}),
...(course ? {
[`${extensionPrefix}:course`]: course
} : {}),
...(bearing ? {
[`${extensionPrefix}:bearing`]: bearing
} : {})
};
this.extensions = { ...this.extensions,
...(Object.keys(data).length > 0 ? {
[trackPointExtension]: data
} : {})
};
}
}
export { GarminPoint as default };