eGPX - Efficient GPX
eGPX is designed for applications where bytesize is key, from database storage to implementations on navigational devices. It is optimized for performance removing all the boilerplate from GPX.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
About The Project
eGPX was designed to optimize performance for exchangable GPX files. It is fully inspired by the original GPX specification which is an XML based exchange format for geopositional data.
However, the XML part of GPX leads to a lot of boilerplate and inefficient use of available storage on devices which already have a lot less of it than is common on modern Smartphones or Computers.
The Foretrex 601 for example only has 8MB of available memory for storing tracks. A 500km track requires ~1.6MB of storage using the GPX format, this drastically limits the number of checkpoints that can be stored making it unappealing for longer routes.
A site like CyclersHub.com needs to store a lot of user submitted tracks, eGPX can improve GPX file size by up to 7 times, thus saving prescious space in their database!
Getting Started
This repo comes with a pre-built eGPX parser. Simply run:
npm install
tsc build
and run the example with:
node example.js
Roadmap
- [x] Basic Positional Data support.
- [ ] Full GPX feature support
- [ ] Author Info
- [ ] Additional Metadata
See the open issues for a full list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE.txt
for more information.