Skip to content

matteomelotti/GpxJs

 
 

Repository files navigation

GpxJs

GpxJs is a lightweight JS library wich parse .gpx file and get or compute various datas like

  • GPX metadata
  • total and cumulate distances
  • min, max, average, positive and negative height difference
  • Hr, Cadence, Temperature (exported from Garmin devices)

It is created by Lucas, Original Repo

I added some support to new elements exported from my Garmin Edge 830 device as HR, Cadence and Temperature

How to do

Install from npm

npm install --save gpx-js

Load JavaScript file

From an HTML document :

<script src="./js/GpxJs.js"></script>

From a node.js script :

let gpx = require('gpx-js');

Create and parse file

var gpx = new GpxJs(); //Create GpxJs Object
gpx.parse("<xml><gpx></gpx></xml>"); //parse gpx file from string data

Use the gpx Object

var totalDistance = gpx.tracks[0].distance.total;

Export GpxJs Object to GeoJSON

let geoJSON = gpx.toGeoJSON();

Documentation

Property Type Description
xmlSource XML XML Object parsed from gpx string file
metadata Metadata object File metadata
waypoints Array of Waypoint object Array of waypoints
tracks Array of Track object Array of waypoints of tracks
routes Array of Route object Array of waypoints of routes

Metadata object

Property Type Description
name String File name
desc String Description
link Link object Web address
author Float Author object
time DateTime Time

Waypoint object

Property Type Description
name String Point name
cmt String Comment
desc String Point description
lat Float Point latitute
lon Float Point longitude
ele Float Point elevation
time Date Point time

Track object

Property Type Description
name String Point name
cmt String Comment
desc String Point description
src String Used device
number String Track identifier
link String Link to a web address
type String Track type
points Array Points object array
distance Distance Object Distance informations about the Route
elevation Elevation Object Elevation informations about the Route
slopes Float Array Slope of each sub-segment

Route object

Property Type Description
name String Point name
cmt String Comment
desc String Point description
src String Used device
number String Track identifier
link String Link to a web address
type String Route type
points Array Points object array
distance Distance Object Distance informations about the Route
elevation Elevation Object Elevation informations about the Route
slopes Float Array Slope of each sub-segment

Point object

Property Type Description
lat Float Point latitute
lon Float Point longitude
ele Float Point elevation
time Date Point time
hr Int Point Hear rate
cad Int Point Cadence
atemp Int Point Temperature

Distance object

Property Type Description
total Float Total distance of the Route/Track
cumul Float Cumulative distance at each point of the Route/Track

Elevation object

Property Type Description
max Float Maximum elevation
min Float Minimum elevation
pos Float Positive elevation difference
neg Float Negative elevation difference
avg Float Average elevation

Author object

Property Type Description
name String Author name
email Email object Email address of the author
link Link object Web address

Email object

Property Type Description
id String Email id
domain String Email domain

Link object

Property Type Description
href String Web address
text String Link text
type String Link type

About

GPX file parser javascript library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%