Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kf99916/gpx-parser-builder
A simple gpx parser and builder between GPX string and JavaScript object
https://github.com/kf99916/gpx-parser-builder
builder gpx gpx-parser javascript parser
Last synced: about 15 hours ago
JSON representation
A simple gpx parser and builder between GPX string and JavaScript object
- Host: GitHub
- URL: https://github.com/kf99916/gpx-parser-builder
- Owner: kf99916
- License: mit
- Created: 2017-08-19T07:47:32.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-08-06T07:30:06.000Z (5 months ago)
- Last Synced: 2025-01-03T08:12:46.354Z (8 days ago)
- Topics: builder, gpx, gpx-parser, javascript, parser
- Language: JavaScript
- Homepage:
- Size: 192 KB
- Stars: 22
- Watchers: 3
- Forks: 11
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gpx-parser-builder
A simple gpx parser and builder between GPX string and JavaScript object. It is dependent on [isomorphic-xml2js](https://github.com/RikkiGibson/isomorphic-xml2js).[![npm](https://img.shields.io/npm/dt/gpx-parser-builder.svg)](https://www.npmjs.com/package/gpx-parser-builder)
[![GitHub stars](https://img.shields.io/github/stars/kf99916/gpx-parser-builder.svg)](https://github.com/kf99916/gpx-parser-builder/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/kf99916/gpx-parser-builder.svg)](https://github.com/kf99916/gpx-parser-builder/network)
[![npm](https://img.shields.io/npm/v/gpx-parser-builder.svg)](https://www.npmjs.com/package/gpx-parser-builder)
[![GitHub license](https://img.shields.io/github/license/kf99916/gpx-parser-builder.svg)](https://github.com/kf99916/gpx-parser-builder/blob/master/LICENSE)## Requirements
gpx-parser-builder is written with ECMAScript 6. You can leverage [Babel](https://babeljs.io/) and [Webpack](https://webpack.js.org/) to make all browsers available.
## Installation
```bash
npm install gpx-parser-builder --save
```## Version
v1.0.0+ is a breaking change for v0.2.2-. v1.0.0+ fully supports gpx files including waypoints, routes, and tracks. Every gpx type is 1-1 corresponding to a JavaScript class.
## Usage
```javascript
import GPX from 'gpx-parser-builder';// Parse gpx
const gpx = GPX.parse('GPX_STRING');window.console.dir(gpx.metadata);
window.console.dir(gpx.wpt);
window.console.dir(gpx.trk);// Build gpx
window.console.log(gpx.toString());
```Get more details about usage with the unit tests.
### GPX
The GPX JavaScript object.
`constructor(object)`
```javascript
const gpx = new Gpx({$:{...}, metadat: {...}, wpt:[{...},{...}]}, trk: {...}, rte: {...})
```#### Member Variables
`$` the attributes for the gpx element. Default value:
```javascript
{
'version': '1.1',
'creator': 'gpx-parser-builder',
'xmlns': 'http://www.topografix.com/GPX/1/1',
'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance',
'xsi:schemaLocation': 'http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd'
}
````metadata` the metadata for the gpx.
`wpt` array of waypoints. It is corresponded to ``. The type of all elements in `wpt` is `Waypoint`;
`rte` array of routes. It is corresponded to ``. The type of all elements in `rte` is `Route`;
`trk` array of tracks. It is corresponded to ``. The type of all elements in `trk` is `Track`;
#### Static Methods
`parse(gpxString)` parse gpx string to Gpx object. return `null` if parsing failed.
#### Member Methods
`toString(options)` GPX object to gpx string. The options is for [isomorphic-xml2js](https://github.com/RikkiGibson/isomorphic-xml2js).
## Save as GPX file in the frontend
You can leverage [StreamSaver.js](https://github.com/jimmywarting/StreamSaver.js) or [FileSaver.js](https://github.com/eligrey/FileSaver.js) to save as GPX file. ⚠️Not all borwsers support the above file techniques. ⚠️️️
## Author
Zheng-Xiang Ke, [email protected]
## License
gpx-parser-builder is available under the MIT license. See the LICENSE file for more info.