The shortest distance between two points (i.e., the 'great-circle-distance' or 'as the crow flies'), according to the 'Vincenty (ellipsoid)' method. This method uses an ellipsoid and the results are very accurate. The method is computationally more intensive than the other great-circled methods in this package.
distVincentyEllipsoid(p1, p2, a=6378137, b=6356752.3142, f=1/298.257223563)
longitude/latitude of point(s), in degrees 1; can be a vector of two numbers, a matrix of 2 columns (first one is longitude, second is latitude) or a SpatialPoints* object
as above; or missing, in which case the sequential distance between the points in p1 is computed
Equatorial axis of ellipsoid
Polar axis of ellipsoid
Inverse flattening of ellipsoid
Distance value in the same units as the ellipsoid (default is meters)
The WGS84 ellipsoid is 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 |
b |
f |
|
WGS84 |
6378137 |
6356752.3142 |
1/298.257223563 |
|
GRS80 |
6378137 |
6356752.3141 |
1/298.257222101 |
|
GRS67 |
6378160 |
6356774.719 |
1/298.25 |
|
Airy 1830 |
6377563.396 |
6356256.909 |
1/299.3249646 |
|
Bessel 1841 |
6377397.155 |
6356078.965 |
1/299.1528434 |
|
Clarke 1880 |
6378249.145 |
6356514.86955 |
1/293.465 |
|
Clarke 1866 |
6378206.4 |
6356583.8 |
1/294.9786982 |
|
International 1924 |
6378388 |
6356911.946 |
1/297 |
|
Krasovsky 1940 |
6378245 |
6356863 |
1/298.2997381 |
a
is the 'semi-major axis', and b
is the 'semi-minor axis' of the ellipsoid. f
is the flattening.
Note that f = (a-b)/a
Vincenty, T. 1975. Direct and inverse solutions of geodesics on the ellipsoid with application of nested equations. Survey Review Vol. 23, No. 176, pp88-93. Available here:
distGeo, distVincentySphere, distHaversine, distCosine, distMeeus
# NOT RUN {
distVincentyEllipsoid(c(0,0),c(90,90))
# on a 'Clarke 1880' ellipsoid
distVincentyEllipsoid(c(0,0),c(90,90), a=6378249.145, b=6356514.86955, f=1/293.465)
# }
Run the code above in your browser using DataLab