UNPKG

@obstinado/gpx-builder

Version:
145 lines (139 loc) 2.54 kB
'use strict'; class Point { /** * @see http://www.topografix.com/gpx/1/1/#type_wptType */ // eslint-disable-next-line complexity, sonarjs/cognitive-complexity constructor(lat, lon, { ele, time, magvar, geoidheight, name, cmt, desc, src, link, sym, type, fix, sat, hdop, vdop, pdop, ageofdgpsdata, dgpsid, extensions } = {}) { this.lat = lat; this.lon = lon; this.ele = ele || null; this.time = time || null; this.magvar = magvar || null; this.geoidheight = geoidheight || null; this.name = name || null; this.cmt = cmt || null; this.desc = desc || null; this.src = src || null; this.link = link || null; this.sym = sym || null; this.type = type || null; this.fix = fix || null; this.sat = sat || null; this.hdop = hdop || null; this.vdop = vdop || null; this.pdop = pdop || null; this.ageofdgpsdata = ageofdgpsdata || null; this.dgpsid = dgpsid || null; this.extensions = extensions || null; } // eslint-disable-next-line complexity, sonarjs/cognitive-complexity toObject() { const { lat, lon, ele, time, magvar, geoidheight, name, cmt, desc, src, link, sym, type, fix, sat, hdop, vdop, pdop, ageofdgpsdata, dgpsid, extensions } = this; return { attributes: { lat, lon }, ...(ele ? { ele } : {}), ...(time ? { time } : {}), ...(magvar ? { magvar } : {}), ...(geoidheight ? { geoidheight } : {}), ...(name ? { name } : {}), ...(cmt ? { cmt } : {}), ...(desc ? { desc } : {}), ...(src ? { src } : {}), ...(link ? { link: link.toObject() } : {}), ...(sym ? { sym } : {}), ...(type ? { type } : {}), ...(fix ? { fix } : {}), ...(sat ? { sat } : {}), ...(hdop ? { hdop } : {}), ...(vdop ? { vdop } : {}), ...(pdop ? { pdop } : {}), ...(ageofdgpsdata ? { ageofdgpsdata } : {}), ...(dgpsid ? { dgpsid } : {}), ...(extensions && Object.keys(extensions).length > 0 ? { extensions } : {}) }; } } module.exports = Point;