C++ toolkit for analyzing GPS path data – distance, speed, heading etc.

I have been working on and off on a simple C++ toolkit for working with GPS position path data, the type of data that might have been recorded on a mountain hike or run etc. the project is called gps_path_tools and can be found on GitHub.

The toolkit is a small collection of types and functions that allow you to do things like:

  • Calculate distance between two GPS locations
  • Calculate the length of a path
  • Calculate path “heading” at a point on the path
  • Find stationary points within a path
  • Find the closest point on the path to a given location
  • Find the speed of travel at a point on the path
  • Some basic coordinate transformation functions, e.g. to convert decimal-degrees-and-minutes (DDM) to decimal-degrees (DD).

It is a work in progress but has proven very useful for me so far when I have been analyzing previous mountain hikes.

The toolkit is contained in a single header (.h) file and has no dependencies on any libraries other than the standard C++ library.