gpx-builder
Version:
Builder of GPX files
62 lines (57 loc) • 1.53 kB
JavaScript
;
var Point = require('../../BaseBuilder/models/Point.js');
class GarminPoint extends Point {
/**
* Extended garmin point.
*
* @see https://www8.garmin.com/xmlschemas/TrackPointExtensionv2.xsd
*/
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 = {
...(typeof hr === 'number' ? {
[`${extensionPrefix}:hr`]: hr
} : {}),
...(typeof cad === 'number' ? {
[`${extensionPrefix}:cad`]: cad
} : {}),
...(typeof speed === 'number' ? {
[`${extensionPrefix}:speed`]: speed
} : {}),
...(typeof atemp === 'number' ? {
[`${extensionPrefix}:atemp`]: atemp
} : {}),
...(typeof wtemp === 'number' ? {
[`${extensionPrefix}:wtemp`]: wtemp
} : {}),
...(typeof depth === 'number' ? {
[`${extensionPrefix}:depth`]: depth
} : {}),
...(typeof course === 'number' ? {
[`${extensionPrefix}:course`]: course
} : {}),
...(typeof bearing === 'number' ? {
[`${extensionPrefix}:bearing`]: bearing
} : {})
};
this.extensions = {
...this.extensions,
...(Object.keys(data).length > 0 ? {
[trackPointExtension]: data
} : {})
};
}
}
module.exports = GarminPoint;