This calculates geodesic distance between points on the earth, i.e. distance measured along the (presumed ellipsoidal) surface. The method involves the solution of the geodetic inverse problem, using T. Vincenty's modification of Rainsford's method with Helmert's elliptical terms.
geodDist(longitude1, latitude1 = NULL, longitude2 = NULL,
latitude2 = NULL, alongPath = FALSE)longitude or a vector of longitudes, or a
section object, from which longitude and latitude are extracted and
used instead of the next three arguments
latitude or vector of latitudes (ignored if
longitude1 is a section object)
optional longitude or vector of longitudes (ignored if
alongPath=TRUE)
optional latitude or vector of latitudes (ignored if
alongPath=TRUE)
boolean indicating whether to compute distance along the
path, as opposed to distance from the reference point. If
alongPath=TRUE, any values provided for latitude2 and
longitude2 will be ignored.
Vector of distances in kilometres.
The function may be used in several different ways.
Case 1: longitude1 is a section object. The values of
latitude1, longitude2, and latitude2 arguments are
ignored, and the behaviour depends on the value of the alongPath
argument. If alongPath=FALSE, the return value contains the geodetic
distances of each station from the first one. If alongPath=TRUE, the
return value is the geodetic distance along the path connecting the
stations, in the order in which they are stored in the section.
Case 2: longitude1 is a vector. If longitude2 and
latitude2 are not given, then the return value is a vector containing
the distances of each point from the first one, or the distance
along the path connecting the points, according to the value of
alongPath. On the other hand, if both longitude2 and
latitude2 are specified, then the return result depends on the length
of these arguments. If they are each of length 1, then they are taken as a
reference point, from which the distances to longitude1 and
latitude1 are calculated (ignoring the value of alongPath).
However, if they are of the same length as longitude1 and
latitude1, then the return value is the distance between
corresponding (longitude1,latitude1) and
(longitude2,latitude2) values.
T. Vincenty, "Direct and Inverse Solutions of Ellipsoid on the Ellipsoid with Application of Nested Equations", Survey Review, April 1975. (As of early 2009, this document is available at http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf.)
Other functions relating to geodesy: geodGc,
geodXyInverse, geodXy
# NOT RUN {
library(oce)
km <- geodDist(100, 45, 100, 46)
data(section)
geodDist(section)
geodDist(section, alongPath=TRUE)
# }
Run the code above in your browser using DataLab