Expand description
gpx is a library for reading and writing GPX (GPS Exchange Format) files. It uses the primitives provided by geo-types to allow for storage of GPS data.
Examples
use std::io::BufReader;
use std::fs::File;
use gpx::read;
use gpx::{Gpx, Track, TrackSegment};
// This XML file actually exists — try it for yourself!
let file = File::open("tests/fixtures/wikipedia_example.gpx").unwrap();
let reader = BufReader::new(file);
// read takes any io::Read and gives a Result<Gpx, Error>.
let gpx: Gpx = read(reader).unwrap();
// Each GPX file has multiple "tracks", this takes the first one.
let track: &Track = &gpx.tracks[0];
assert_eq!(track.name, Some(String::from("Example GPX Document")));
// Each track will have different segments full of waypoints, where a
// waypoint contains info like latitude, longitude, and elevation.
let segment: &TrackSegment = &track.segments[0];
// This is an example of retrieving the elevation (in meters) at certain points.
assert_eq!(segment.points[0].elevation, Some(4.46));
assert_eq!(segment.points[1].elevation, Some(4.94));
assert_eq!(segment.points[2].elevation, Some(6.87));
Modules
- errors provides error generics for the gpx parser.
Structs
- Gpx is the root element in the XML file.
- Information about the copyright holder and any license governing use of this file.
- Link represents a link to an external resource.
- Metadata is information about the GPX file, author, and copyright restrictions.
- Person represents a person or organization.
- Route represents an ordered list of waypoints representing a series of turn points leading to a destination.
- Track represents an ordered list of points describing a path.
- TrackSegment represents a list of track points.
- Waypoint represents a waypoint, point of interest, or named feature on a map.
Enums
- Type of the GPS fix.
- Allowable GPX versions. Currently, only GPX 1.0 and GPX 1.1 are accepted.
Functions
- Reads an activity in GPX format.
- Writes an activity to GPX format.
- Writes an activity to GPX format.