[][src]Crate gpx

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

errors provides error generics for the gpx parser.

Structs

Gpx

Gpx is the root element in the XML file.

Link

Link represents a link to an external resource.

Metadata

Metadata is information about the GPX file, author, and copyright restrictions.

Person

Person represents a person or organization.

Track

Track represents an ordered list of points describing a path.

TrackSegment

TrackSegment represents a list of track points.

Waypoint

Waypoint represents a waypoint, point of interest, or named feature on a map.

Enums

Fix

Type of the GPS fix.

GpxVersion

Functions

read

Reads an activity in GPX format.

write

Writes an activity to GPX format.