swfscMisc (version 1.3)

distance: Distance Between Coordinates

Description

Calculates the distance between two coordinates using the Law of Cosines, Haversine, or Vincenty methods.

Usage

distance(
  lat1,
  lon1,
  lat2,
  lon2,
  radius = convert.distance(6371, "km", "nm"),
  units = c("nm", "km", "mi"),
  ellipsoid = datum(),
  iter.limit = 20,
  method = c("lawofcosines", "haversine", "vincenty")
)

Arguments

lat1, lon1, lat2, lon2

The latitude and longitude of the first and second points in decimal degrees.

radius

radius of sphere.

units

units of distance. Can be "km" (kilometers), "nm" (nautical miles), or "mi" (statute miles), or any partial match thereof (case sensitive).

ellipsoid

ellipsoid model parameters as returned from a call to datum.

iter.limit

An integer value defining the limit of iterations for Vincenty method.

method

Character defining the distance method to use. Can be "lawofcosines", "haversine", "vincenty", or any partial match thereof (case sensitive).

References

Code adapted from JavaScript by Chris Veness http://www.movable-type.co.uk/scripts/latlong.html Vincenty, T. 1975. Direct and inverse solutions of geodesics on the ellipsoid with application of nested equations. Survey Review 22(176):88-93 http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf.

Examples

Run this code
# NOT RUN {
# What is the distance from San Diego, CA to Honolulu, HI?
distance(32.87, -117.25, 21.35, -157.98, method = "lawofcosines")
distance(32.87, -117.25, 21.35, -157.98, method = "haversine")
distance(32.87, -117.25, 21.35, -157.98, method = "vincenty")

# }

Run the code above in your browser using DataLab