Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GEODESIC(3)		   Library Functions Manual		   GEODESIC(3)

NAME
       geod_init - initialize an ellipsoid
       geod_direct geod_gendirect - the	direct geodesic	problem
       geod_inverse geod_geninverse - the inverse geodesic problem
       geod_lineinit  geod_directline  geod_gendirectline  geod_inverseline  -
       initialize a geodesic line
       geod_setdistance	geod_gensetdistance - set distance to reference	point
       geod_position geod_genposition -	a position on a	geodesic line
       geod_polygon_init - initialize a	polygon
       geod_addpoint geod_addedge - add	to a polygon
       geod_polygon_compute  geod_polygon_testpoint  geod_polygon_testedge   -
       compute properties of polygon
       geod_polygon_clear - clear polygon
       geod_polygonarea	- the area of a	polygon

SYNOPSIS
       #include	<geodesic.h>
       and link	against	the proj library.

DESCRIPTION
       This library is a port of the geodesic routines in the C++ library, Ge-
       ographicLib, to C.  It solves the direct	and inverse geodesic  problems
       on  an  ellipsoid  of revolution.  In addition, the reduced length of a
       geodesic	and the	area between a geodesic	and the	equator	can be comput-
       ed.   The  results are accurate to round	off for	|f| < 1/50, where f is
       the flattening.	Note that the geodesic routines	measure	angles	(lati-
       tudes,  longitudes,  and	 azimuths)  in degrees,	unlike the rest	of the
       proj library, which uses	radians.  The documentation for	 this  library
       is included in geodesic.h.  A formatted version of the documentation is
       available  at  https://geographiclib.sourceforge.io/1.50/C.    Detailed
       documentation   of   the	  interface  is	 given	at  https://geographi-
       clib.sourceforge.io/1.50/C/geodesic_8h.html.

EXAMPLE
       The following program reads in  lines  with  the	 coordinates  for  two
       points in decimal degrees (lat1,	lon1, lat2, lon2) and prints out azi1,
       azi2, s12 for the geodesic line between each  pair  of  points  on  the
       WGS84 ellipsoid.	 (N.B. azi2 is the forward azimuth at point 2.)

       #include	<stdio.h>
       #include	<geodesic.h>

       int main() {
	 double	a = 6378137, f = 1/298.257223563; /* WGS84 */
	 double	lat1, lon1, azi1, lat2,	lon2, azi2, s12;
	 struct	geod_geodesic g;

	 geod_init(&g, a, f);
	 while (scanf("%lf %lf %lf %lf",
		      &lat1, &lon1, &lat2, &lon2) == 4)	{
	   geod_inverse(&g, lat1, lon1,	lat2, lon2,
			&s12, &azi1, &azi2);
	   printf("%.8f	%.8f %.3f\n", azi1, azi2, s12);
	 }
	 return	0;
       }

LIBRARY
       libproj.a - library of projections and support procedures

SEE ALSO
       Full online documentation for geodesic(3),
       https://geographiclib.sourceforge.io/1.50/C
       https://geographiclib.sourceforge.io/1.50/C/geodesic_8h.html

       geod(1)

       GeographicLib, https://geographiclib.sourceforge.io

       The  GeodesicExact  class in GeographicLib solves the geodesic problems
       in terms	of elliptic integrals; the results are accurate	for  arbitrary
       f.

       C. F. F.	Karney,	Algorithms for Geodesics,
       J. Geodesy 87, 43-55 (2013);
       DOI: https://doi.org/10.1007/s00190-012-0578-z
       https://geographiclib.sourceforge.io/geod-addenda.html

       A geodesic bibliography,
       https://geographiclib.sourceforge.io/geodesic-papers/biblio.html

       The Wikipedia page, Geodesics on	an ellipsoid,
       https://en.wikipedia.org/wiki/Geodesics_on_an_ellipsoid

BUGS
       A  list of known	bugs can found at https://github.com/OSGeo/PROJ/issues
       where new bug reports can be submitted too.

HOME PAGE
       https://proj.org/

			     2020/02/10	Rel. 6.3.1		   GEODESIC(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | LIBRARY | SEE ALSO | BUGS | HOME PAGE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=geodesic&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help