Detalhes do pacote

gpx-builder

fabulator16.1kApache-2.05.6.0

Builder of GPX files

gpx, garmin, gpx-generator, gps

readme (leia-me)

GPX builder

npm

This library creates GPX version 1.1 files. I recommend you to check full documentation on topografix. The library has option to use Garmin extensions, so you can add cadence, heart rate, speed and other fitness data to your points.

Integration for Strava allows to use some non-standard metric as power. That XML is not valid by standard, but it's the way that Strava use it.

How to use it

Install:

npm install gpx-builder

Create your first GPX file:

const { buildGPX, GarminBuilder } = require('gpx-builder');

const { Point } = GarminBuilder.MODELS;

const points = [
    new Point(51.02832496166229, 15.515156626701355, {
        ele: 314.715,
        time: new Date('2018-06-10T17:29:35Z'),
        hr: 120,
    }),
    new Point(51.12832496166229, 15.615156626701355, {
        ele: 314.715,
        time: new Date('2018-06-10T17:39:35Z'),
        hr: 121,
    }),
];

const gpxData = new GarminBuilder();

gpxData.setSegmentPoints(points);

console.log(buildGPX(gpxData.toObject()));

Use Strava format that supports power and distance on top of Garmin standard properties.

const { StravaBuilder } = require('gpx-builder');
const { Point } = StravaBuilder.MODELS;

const points = [
    new Point(51.02832496166229, 15.515156626701355, {
        ele: 314.715,
        time: new Date('2018-06-10T17:29:35Z'),
        hr: 120,
        power: 5,
        distance: 1,
    }),
];

How the library works

Library contains two types of classes:

  • Creators - They create xml string from defined Object structure
  • Builders - They offer user friendly way to create data for creators

Library contains three Builders:

Types

What you find in type file are types that are used as object for builders. Eg. you can create object based on WayPoint and use it directly to creator. You can also use Point class in builder section that has more developer friendly constructor. It will convert you data to WayPoint type.

changelog (log de mudanças)

Change Log

All notable changes to this project will be documented in this file.

v5.6.0 (2025-05-06)

Changed

  • cc8bbc6 Make experimental parser understand Strava activities GPX
  • 8f6c68c Update Github Flow dependency node to v20.19.1 (#235)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

v5.5.0 (2025-04-08)

Fixed

  • 1586c9c Use HTTPS location for gpx.xsd (#234)

Changed

  • 3c0cc3d Update Github Flow dependency node to v20.19.0 (#232)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

  • ed819d3 Update Github Flow dependency node to v20.18.3 (#230)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

v5.4.0 (2024-11-19)

Changed

  • 7d6cb5a export the StravaPointsOptions interface (#227)

v5.3.0 (2023-12-20)

Changed

  • 3a844a7 Garmin schema locations (#216)
  • 5f600d6 Update dev dependency semantic-release-config-fabulator to v6 (#183)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

  • 917fdd0 Update dev dependency eslint-config-fabulator to v3 (#182)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

v5.2.1 (2023-03-22)

Fixed

  • 3db52c3 parser lat and lon types (#179)

Fix the parser to set the latitude and longitude as numbers, instead of strings.

v5.2.0 (2022-12-31)

Changed

  • e60c7ed Added new properties for waypoint experimental parsing.

v5.1.1 (2022-12-25)

v5.1.0 (2022-12-25)

Added

  • 2c8f923 Experimental gpx parsing function

Changed

  • 2ce05ee Update dev dependency eslint-config-fabulator to v2 (#163)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

  • c3033a3 Update dev dependency semantic-release-config-fabulator to v5 (#156)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

  • dffca80 Update dev dependency rollup-config-fabulator to v2 (#155)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

  • e84715f Update dev dependency commitlint-config-fabulator to v5 (#152)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

  • 47fe023 Update dev dependency semantic-release-config-fabulator to v4 (#153)

Co-authored-by: renovate[bot] 29139614+renovate[bot]@users.noreply.github.com

  • da73bef Update dev dependency husky to v8 (#134)

Co-authored-by: Renovate Bot bot@renovateapp.com

v5.0.0 (2022-05-03)

Changed

  • a0bdc96 Migrate to xmlbuilder2, fix falsey number nodes/attributes BREAKING

  • migrate to xmlbuilder2 for better bundler compatibility

  • fix falsey number values and add tests

  • Fixed: migrate to xmlbuilder2 and fix falsey number nodes/attributes

Migrate to xmlbuilder2 for better bundler compatibility Fix falsey number nodes/attributes

Co-authored-by: Michal Ozogan michal@ozogan.eu

Fixed

  • ddbbe41 Update lock to make security bots happy. (#120)

Co-authored-by: Renovate Bot bot@renovateapp.com

v4.1.0 (2022-04-02)

Changed

  • 8a00cbb Update dev dependencies
  • f6bfce4 Update dev dependency commitlint-config-fabulator to v3 (#121)

Co-authored-by: Renovate Bot bot@renovateapp.com

Docs

  • a4fd885 Fix typos in readme and remove unused badges

v4.0.3 (2022-01-31)

Fixed

  • 2d335ed Update lock for security updated

v4.0.2 (2022-01-24)

Fixed

  • 59f3606 Update lock for security updated

v4.0.1 (2022-01-23)

Fixed

  • 114e66b Update lock for security updated (#116)

Co-authored-by: Renovate Bot bot@renovateapp.com

v4.0.0 (2022-01-23)

Changed

  • 19dbf65 Use Route class instead of Route type for base-builder. BREAKING

v3.8.0 (2021-10-28)

Fixed

  • 0da2b87 Linter
  • 37b17cb Update lock for security updated
  • 7edc48b Update lock for security updated
  • 52aae59 Update lock for security updated
  • e71dfe9 Update lock for security updated
  • 44e844c Update lock for security updated

WIP

Changed

  • e7ea1ba Update dependencies and README
  • 3cfcb91 Update dev dependency semantic-release-config-fabulator to v3 (#113)

Co-authored-by: Renovate Bot bot@renovateapp.com

v3.7.8 (2021-08-23)

Fixed

  • b55dcad Update lock for security updated

v3.7.7 (2021-08-16)

Fixed

  • 0a67536 Update lock for security updated

v3.7.6 (2021-08-09)

Fixed

  • 9b3d37c Update lock for security updated

v3.7.5 (2021-08-02)

Fixed

  • 901a0cd Update lock for security updated

v3.7.4 (2021-08-01)

Fixed

  • 3496657 Update lock for security updated

v3.7.3 (2021-07-26)

Fixed

  • b75c4e2 Update lock for security updated

v3.7.2 (2021-07-25)

Fixed

  • cf00a4e Update lock for security updated

v3.7.1 (2021-07-19)

Fixed

  • 9b8c80a Update lock for security updated

v3.7.0 (2021-07-18)

Changed

Fixed

  • c00a112 Update lock for security updated
  • 3af5f3e Update lock for security updated
  • cae9e8a Update lock for security updated
  • 540c161 Update lock for security updated

v3.6.47 (2021-06-14)

Fixed

  • 1f2187b Update lock for security updated

v3.6.46 (2021-06-07)

Fixed

  • 067e21b Update lock for security updated

v3.6.45 (2021-05-31)

Fixed

  • 0665610 Update lock for security updated

v3.6.44 (2021-05-24)

Fixed

  • c2c42f4 Update lock for security updated

v3.6.43 (2021-05-17)

Fixed

  • a3a8d84 Update lock for security updated

v3.6.42 (2021-05-10)

Fixed

  • 8f8b049 Update lock for security updated

v3.6.41 (2021-05-03)

Fixed

  • 1aee1bf Update lock for security updated

v3.6.40 (2021-04-26)

Fixed

  • 1909317 Update lock for security updated

v3.6.39 (2021-04-25)

Fixed

  • eba91e6 Update lock for security updated

v3.6.38 (2021-04-12)

Fixed

  • 8b757c9 Update lock for security updated

v3.6.37 (2021-04-11)

Fixed

  • 964f9e9 Update lock for security updated

v3.6.36 (2021-04-05)

Fixed

  • 29ea8db Update lock for security updated

v3.6.35 (2021-04-04)

Fixed

  • e806d18 Update lock for security updated

v3.6.34 (2021-03-29)

Fixed

  • 394644a Update lock for security updated

v3.6.33 (2021-03-22)

Fixed

  • 33d5c25 Update lock for security updated

v3.6.32 (2021-03-15)

Fixed

  • a20f916 Update lock for security updated

v3.6.31 (2021-03-08)

Fixed

  • 88f0369 Update lock for security updated

v3.6.30 (2021-03-01)

Fixed

  • 838107e Update lock for security updated

v3.6.29 (2021-03-01)

Fixed

  • c93c8dd Update lock for security updated

v3.6.28 (2021-02-15)

Fixed

  • b8d9038 Update lock for security updated

v3.6.27 (2021-02-08)

Fixed

  • 20070f4 Update lock for security updated

v3.6.26 (2021-02-01)

Fixed

  • c526733 Update lock for security updated

v3.6.25 (2021-02-01)

Fixed

  • 95bc560 Update lock for security updated

v3.6.24 (2021-01-25)

Fixed

  • 6cd3409 Update lock for security updated

v3.6.23 (2021-01-25)

Fixed

  • 03eb3b9 Update lock for security updated

v3.6.22 (2021-01-11)

Fixed

  • f06ddf7 Update lock for security updated

v3.6.21 (2021-01-04)

Fixed

  • 8aa97ba Update lock for security updated

v3.6.20 (2020-12-28)

Fixed

  • 54ab148 Update lock for security updated

v3.6.19 (2020-12-21)

Fixed

  • 76f7242 Update lock for security updated

v3.6.18 (2020-12-14)

Fixed

  • d8ecd69 Update lock for security updated

v3.6.17 (2020-12-07)

Fixed

  • 8e3ab29 Update lock for security updated

v3.6.16 (2020-11-30)

Fixed

  • ea7b574 Update lock for security updated

v3.6.15 (2020-11-23)

Fixed

  • 46c14a6 Update lock for security updated

v3.6.14 (2020-11-16)

Fixed

  • 781a3f6 Update lock for security updated

v3.6.13 (2020-11-16)

Fixed

  • 6ba87d1 Update lock for security updated

v3.6.12 (2020-11-09)

Fixed

  • 4d227f0 Update lock for security updated

v3.6.11 (2020-11-02)

Fixed

  • 558d5e7 Update lock for security updated

v3.6.10 (2020-10-26)

Fixed

  • 5650625 Update lock for security updated

v3.6.9 (2020-10-26)

Fixed

  • 6eec206 Update lock for security updated

v3.6.8 (2020-10-19)

Fixed

  • 2546409 Update lock for security updated

v3.6.7 (2020-10-19)

Fixed

  • 0f9b9d4 Update lock for security updated

v3.6.6 (2020-10-05)

Fixed

  • 547e30c Update lock for security updated

v3.6.5 (2020-09-28)

Fixed

  • 4488332 Update lock for security updated

v3.6.4 (2020-09-28)

Fixed

  • 2cf55c8 Update lock for security updated

v3.6.3 (2020-09-21)

Fixed

  • b7b6e99 Update lock for security updated

v3.6.2 (2020-09-14)

Fixed

  • 09010f8 Update lock for security updated

v3.6.1 (2020-09-12)

Fixed

v3.6.0 (2020-08-01)

Added

Changed

  • 9ada976 Change building libraries
  • 4d609e5 Update dev dependency semantic-release-config-fabulator to v2

[3.5.0] 2020-07-15

Changed

  • 80dc975 Update dependency @babel/runtime to v7.10.5

[3.4.0] 2020-07-01

Changed

  • 9d9e0da Update dependency @babel/runtime to v7.10.4

[3.3.0] 2020-06-21

Changed

  • 5dbe778 Update dependency @babel/runtime to v7.10.3

[3.2.0] 2020-06-01

Changed

  • 11af3b4 Update dependency @babel/runtime to v7.10.2

[3.1.0] 2020-05-29

Changed

  • 473fae8 Update dependency @babel/runtime to v7.10.1

[3.0.0] 2020-05-16

Changed

  • 57fce6c Update dependency xmlbuilder to v15 BREAKING (#38)

Co-authored-by: Renovate Bot bot@renovateapp.com

[2.5.0] 2020-04-30

Changed

  • b5709b5 Update dependency @babel/runtime to v7.9.6

[2.4.0] 2020-03-22

Changed

  • c2b2bf1 Update dependency @babel/runtime to v7.9.2

[2.3.0] 2020-03-06

Changed

  • 231e219 Update dependency @babel/runtime to v7.8.7
  • b51070b Update dev dependency @socifi/eslint-config to v2.10.2

[2.2.1] 2020-01-31

Fixed

  • 0e2598c Add missing babel runtime dependency

[2.2.0] 2019-10-24

Changed

  • 8fc4e6c Update dev dependency @socifi/rollup-config to ^2.2.2

[2.1.0] 2019-10-22

Changed

Other

  • dc491e3 Update dependency core-js to ^3.3.2
  • 116298d Update dependency core-js to ^3.3.1
  • 22afca2 Update dependency @socifi/babel-config to ^0.7.0
  • 677eef5 Update dependency @socifi/babel-config to ^0.6.2
  • 62af5c8 Update dependency @socifi/eslint-config to ^2.8.0
  • a317a18 Update to newest versions
  • c97f3c8 Update packages
  • 2e3b402 Update dependency @socifi/jest-config to ^2.3.1
  • 748a1c7 Update dependency xmlbuilder to v11
  • 01bb0a7 Update dependency @socifi/rollup-config to ^2.1.0
  • 6bb3e1d Update dependency @socifi/jest-config to ^2.2.0

[2.0.1] - 2018-11-17

Fixed

  • Initialization of Garmin builder

[2.0.0] - 2018-11-16

Changed

  • Migrate to typescript

[1.0.1] - 2018-06-27

Fixed

  • Metadata for Garmin builder

[1.0.0] - 2018-06-12

Changed

  • Create new model for Garmin extensions
  • Make 1. release

[0.3.0] - 2018-05-10

Changed

  • Update version of garmin point extension

[0.2.0] - 2018-05-09

Added

  • Add custom building models that makes easier to create gpx files.

[0.1.0] - 2018-04-10

Project start