View source: R/distance_by_haversine.R
distance_by_haversine | R Documentation |
distance_by_haversine
is used when distances between latitude and
longitude-pairs need to be represented in metre or kilometre units. The
distances between two points is based on the Haversine Formula which is
approximate and is most appropriate when used for short-distance calculations.
distance_by_haversine( latitude, longitude, latitude_lag = NA, longitude_lag = NA, unit = "metres", radius = 6371 )
latitude |
A vector of latitude values in decimal degrees. |
longitude |
A vector of longitude values in decimal degrees. |
latitude_lag |
A vector of latitude values in decimal degrees. |
longitude_lag |
A vector of longitude values in decimal degrees. |
unit |
The unit of the returned distance values. Can be metres or kilometres. Metres is the default. |
radius |
The radius of the Earth in kilometres. The default value is 6371, but I have seen versions of similar functions which use slightly different values (plus or minus two or three kilometres) so this value can be altered. |
The Haversine Formula does not compensate for Earth's non-spherical shape, will overestimate distances in the polar regions but will underestimate distances near the equator. For more information see https://en.wikipedia.org/wiki/Haversine_formula
distance_by_haversine
is not a spatial function and does not have any
geographic library dependencies.
Stuart K. Grange
## Not run: # What is the distance between Oxford's Radcliffe Camera and Cliveden House in Buckinghamshire? # In metres distance_by_haversine(51.753447, -1.254024, 51.558170, -0.688250) 44662.57 # In kilometres distance_by_haversine(51.753447, -1.254024, 51.558170, -0.688250, "km") 44.66257 # or because we are in a locale with a different distance unit, in miles distance_by_haversine(51.753447, -1.254024, 51.558170, -0.688250, "km") * 0.62 27.69079 # Data frame usage # Distances of many air quality monitoring sites from the City of London data_air$distance <- distance_by_haversine( data_air$latitude, data_air$longitude, 51.513468, -0.089133, "km") # Arrange by distance, closest at the top data_air <- plyr::arrange(data_air, distance) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.