Highly accurate estimate of the 'geodesic problem' (find location and azimuth at arrival when departing from a location, given an direction (azimuth) at departure and distance) and the 'inverse geodesic problem' (find the distance between two points and the azimuth of departure and arrival for the shortest path. Computations are for an ellipsoid (default is WGS84 ellipsoid).
This is a direct implementation of the the GeographicLib code by C.F.F. Karney that is also used in several other functions in this package (for example, in distGeo
and areaPolygon
).
geodesic(p, azi, d, a=6378137, f=1/298.257223563, ...)geodesic_inverse(p1, p2, a=6378137, f=1/298.257223563, ...)
Three column matrix with columns 'longitude', 'latitude', 'azimuth' (geodesic); or 'distance' (in meters), 'azimuth1' (of departure), 'azimuth2' (of arrival) (geodesic_inverse)
longitude/latitude of point(s). Can be a vector of two numbers, a matrix of 2 columns (first column is longitude, second column is latitude) or a SpatialPoints* object
as above
as above
numeric. Azimuth of departure in degrees
numeric. Distance in meters
numeric. Major (equatorial) radius of the ellipsoid. The default value is for WGS84
numeric. Ellipsoid flattening. The default value is for WGS84
additional arguments (none implemented)
This function calls GeographicLib code by C.F.F. Karney
Parameters from the WGS84 ellipsoid are used by default. It is the best available global ellipsoid, but for some areas other ellipsoids could be preferable, or even necessary if you work with a printed map that refers to that ellipsoid. Here are parameters for some commonly used ellipsoids.
ellipsoid | a | f | |
WGS84 | 6378137 | 1/298.257223563 | |
GRS80 | 6378137 | 1/298.257222101 | |
GRS67 | 6378160 | 1/298.25 | |
Airy 1830 | 6377563.396 | 1/299.3249646 | |
Bessel 1841 | 6377397.155 | 1/299.1528434 | |
Clarke 1880 | 6378249.145 | 1/293.465 | |
Clarke 1866 | 6378206.4 | 1/294.9786982 | |
International 1924 | 6378388 | 1/297 | |
Krasovsky 1940 | 6378245 | 1/298.2997381 |
more info: https://en.wikipedia.org/wiki/Reference_ellipsoid
C.F.F. Karney, 2013. Algorithms for geodesics, J. Geodesy 87: 43-55. tools:::Rd_expr_doi("10.1007/s00190-012-0578-z"). Addenda: https://geographiclib.sourceforge.io/geod-addenda.html. Also see https://geographiclib.sourceforge.io/
distGeo
geodesic(cbind(0,0), 30, 1000000)
geodesic_inverse(cbind(0,0), cbind(90,90))
Run the code above in your browser using DataLab