GPS Data
From Processing
This page presents a Processing library to help you read and manipulate GPS data in the GPX format. Only basic information (latitude, longitude, elevation and time) is parsed but this should cover most uses; you will need to adjust the library if you need to support GPX extensions.
A GPX file is an XML file with a collection of GPS Tracks inside. Each GPS Track has a name, and is a collection of GPS Track Segments. Each segment is a collection of GPS Points with latitude and longitude as well as an elevation and timestamp. A GPX file can also contain waypoints, with lat/lon position and name and type. No other information is parsed by this library.
Contents |
Reading and Displaying GPS Data Using a Simple GPX Library
First, import the library and declare a global instance of the GPX object.
import tomc.gpx.*; // declare a GPX object GPX gpx;
Then, inside setup(), instantiate the GPX object, and tell it which file to parse. The file should be inside your data folder, or you can use a full URL.
Finally, in your draw() function, loop through the tracks and waypoints and draw them however you would like. See the example applet for drawing GPS tracks on a sphere.
for (int i = 0; i < gpx.getTrackCount(); i++) { GPXTrack trk = gpx.getTrack(i); // do something with trk.name for (int j = 0; j < trk.size(); j++) { GPXTrackSeg trkseg = trk.getTrackSeg(j); for (int k = 0; k < trkseg.size(); k++) { GPXPoint pt = trkseg.getPoint(k); // do something with pt.lat or pt.lon } } } for (int i = 0; i < gpx.getWayPointCount(); i++) { GPXWayPoint wpt = gpx.getWayPoint(i); // do something with wpt.lat or wpt.lon or wpt.name or wpt.type }
Installation
Unzip the archive and place the gpx folder into your Processing libraries folder, then restart Processing.
Bugs / Requests
This library has only been tested with a few different files, and I expect it will need updating to properly handle things like waypoints with elevation, and so on. If you find a file that breaks it, please file an issue at https://github.com/RandomEtc/processing-gpx/issues
License
This library is distributed with full source code under the LGPL.
Downloads
Processing GPX project on Github (use the downloads button to get the latest in a zip file)
Related Links
- GPX homepage
- example applet (Note that raw GPS is not a clean format, and that it requires further processing to remove erroneous data. Thanks to Toby for the file.)