Skip to content

MichalBures/practical-gpx-to-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Practical gpx to js

This is not a fully featured gpx parser or builder so don't expect it to do everything. The aim is to be simple and practical and do what you need.

npm install --save practical-gpx-to-js

Example

import { parseGpx, buildGpx } from 'practical-gpx-to-js';
import * as fs from 'fs';
import * as path from 'path';

let gpxString = fs.readFileSync(path.join(__dirname, 'Track.gpx'), {
	encoding: 'utf8',
});

// gpx has the type of Gpx, see below in Types
let gpx = parseGpx(gpxString);

let newGpxString = buildGpx({
	metadata: gpx.metadata,
	waypoints: gpx.waypoints,
	tracks: gpx.tracks,
});

fs.writeFileSync(path.join(__dirname, 'NewTrack.gpx'), newGpxString);

Types

GPX

export interface Gpx {
	metadata: GpxMetadata;
	waypoints: Array<GpxWaypoint> | null;
	tracks: Array<GpxTrack> | null;
}

Metadata

export interface GpxMetadata {
	name: string | null;
	description: string | null;
	creator: string | null;
	time: Date | null;
}

Waypoint

export interface GpxWaypoint {
	lat: number;
	lon: number;
	time: Date | null;
	name: string | null;
	description: string | null;
	symbol: string | null;
	altitude: number | null;
}

Track

export interface GpxTrack {
	name: string | null;
	trackpoints: Array<GpxTrackpoint>;
	segments: Array<number>;
}

Trackpoint

export interface GpxTrackpoint {
	lat: number;
	lon: number;
	time: Date | null;
	altitude: number | null;
	speed: number | null;
	cadence: number | null;
	heartRate: number | null;
}

Extensions

Currently handles only gpxtpx:TrackPointExtension hr and cad

Building

This library uses tsdx under the hood.

License

MIT

About

Simple and practical gpx parser and builder

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published