Library¶
GeographicLib started off as a C++ library. However the component of the library solving the geodesic problem was sufficiently novel and sufficiently important that there was a need to port it to several other languages.
Infrastructure¶
The repositories for all implementations are on GitHub. The project is hosted on SourceForge and it hosts GeographicLib’s web pages and the file system for package distribution.
Supported languages¶
The C++ version of GeographicLib offers the broadest range of features. However, the geodesic routines are available several other languages. Here is a list of the supported languages.
language |
information |
repository[1] |
download[2] |
---|---|---|---|
C++ |
|||
C |
|||
Fortran |
|||
Python |
|||
Octave[7] |
|||
Java[9] |
|||
JavaScript[11] |
Online utilities¶
The C++ library provides some online tools using GeographicLib
geographic coordinate conversions between latitude/longitude, UTM or UPS, and MGRS;
evaluate the geoid height for EGM84, EGM96, and EGM2008.
Datasets¶
Some classes in the C++ library and the geoid functions in the Octave package require datasets to be available. Here are the links for the instructions for how to download and install these.
Dataset |
||
---|---|---|
geoids |
||
gravity models |
||
magnetic models |
Test data¶
High quality test data is used to test GeographicLib for
Other implementations¶
Others have written independent implementations of the geodesic algorithms or have built other tools using GeographicLib:
Mathematica: Kei Misawa, mathematica-geodesic.
R: R. J. Hijmans, geosphere.
Rust: Michael Kirk, Rust implementation of GeographicLib.
Go: Patrick Yukman, A Go port of GeographicLib.
Python via Cython: Sergey Serebryakov, Cython extension module for GeographicLib.
JavaScript via emscripten: William Wall, OpenSphere ASM.
JavaScript: Jaco, a graphical tool for geodesic calculations.