// -*- text -*- /** * \file geodesic-c.dox * \brief Documentation for geodesic routines implemented in C * * Written by Charles Karney and licensed under the * MIT/X11 License. For more information, see * http://geographiclib.sourceforge.net/ **********************************************************************/ /** \mainpage Geodesic routines implemented in C \author Charles F. F. Karney (charles@karney.com) \version 1.32 \section abstract Abstract This is a C implementation of the geodesic algorithms from GeographicLib. This is a self-contained library (requiring only the standard C math library) which makes it easy to do geodesic computations for an ellipsoid of revolution in a C program. It uses ANSI C as described in B. W. Kernigan and D. M. Ritchie, The C Programming Language, 2nd Ed. (Prentice Hall, 1988), and so should compile correctly with just about any C compiler. \section download Downloading the source The C library is part of %GeographicLib which available for download at - GeographicLib-1.32.tar.gz - GeographicLib-1.32.zip . as either a compressed tar file (tar.gz) or a zip file. After unpacking the source, the C library can be found in GeographicLib-1.32/legacy/C. The library consists of two files geodesic.c and geodesic.h. The library is also included as part of proj.4 starting with version 4.9.0, where is used as the computational backend for geod(1). Instructions for how to use the library via proj.4 are given below. \section doc Library documentation The interface to the library is documented via doxygen in the header file. To access this, see geodesic.h. \section samples Sample programs Also included are 3 small test programs: - direct.c is a simple command line utility for solving the direct geodesic problem; - inverse.c is a simple command line utility for solving the inverse geodesic problem; - planimeter.c is a simple command line utility for computing the area of a geodesic polygon given its vertices. . Here, for example, is inverse.c \include inverse.c To compile, link, and run this, you would typically use \verbatim cc -o inverse inverse.c geodesic.c -lm echo 30 0 29.5 179.5 | ./inverse \endverbatim These sample programs can also be built with the supplied cmake file, CMakeLists.txt, as follows \verbatim mkdir BUILD cd BUILD cmake .. make echo 30 0 29.5 179.5 | ./inverse \endverbatim Alternatively, if you have proj.4 installed, you can compile and link with \verbatim cc -c inverse.c cc -o inverse inverse.o -lproj echo 30 0 29.5 179.5 | ./inverse \endverbatim If proj.4 is installed, e.g., in /usr/local, you might have to use \verbatim cc -c -I/usr/local/include inverse.c cc -o inverse inverse.o -lproj -L/usr/local/lib -Wl,-rpath=/usr/local/lib echo 30 0 29.5 179.5 | ./inverse \endverbatim \section library Using the library - Put @verbatim #include "geodesic.h" @endverbatim in your source code. If you are using the library via proj.4, change this to @verbatim #include @endverbatim - make calls to the geodesic routines from your code. The interface to the library is documented in geodesic.h. - Compile and link as described above. \section external External links - These algorithms are derived in C. F. F. Karney, Algorithms for geodesics, J. Geodesy 87, 43--55 (2013) ( addenda). - A longer paper on geodesics: C. F. F. Karney, Geodesics on an ellipsoid of revolution, Feb. 2011 ( errata). - The GeographicLib web site. - The C++ library. - The Java library. - The Fortran library. - Documentation on the C++ classes: GeographicLib::Geodesic, GeographicLib::GeodesicLine, GeographicLib::PolygonArea. - The section in the %GeographicLib documentation on geodesics: \ref geodesic. - An online geodesic bibliography. **********************************************************************/