Skip to content

Instantly share code, notes, and snippets.

@stephenburgess8
Created August 17, 2018 14:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stephenburgess8/7fb35dc9bfa3926f9284c08ef78f2a7f to your computer and use it in GitHub Desktop.
Save stephenburgess8/7fb35dc9bfa3926f9284c08ef78f2a7f to your computer and use it in GitHub Desktop.
Haversine Formula Function (Distance between coordinates)
// coordinatesDistanceInKm(43.248268, -89.840309, 43.19071, -89.33684)
function coordinatesDistanceInKm(latitude1, longitude1, latitude2, longitude2)
{
var earthRadiusInKm = 6373;
var radianMultipler = Math.PI / 180
var distanceLatitude = (latitude2 - latitude1) * radianMultipler;
var distanceLongitude = (longitude2 - longitude1) * radianMultipler;
var latitude1InRadians = latitude1 * radianMultipler;
var latitude2InRadians = latitude2 * radianMultipler;
var halfChordDistanceSquared = Math.pow(Math.sin(distanceLatitude / 2), 2) +
Math.cos(latitude1InRadians) * Math.cos(latitude2InRadians) *
Math.pow(Math.sin(distanceLongitude / 2), 2);
var angularDistanceInRadians = 2 * Math.asin(Math.sqrt(halfChordDistanceSquared));
var haversineDistance = earthRadiusInKm * angularDistanceInRadians;
return haversineDistance;
}
// coordinatesDistanceInMiles(43.248268, -89.840309, 43.19071, -89.33684)
function coordinatesDistanceInMiles(latitude1, longitude1, latitude2, longitude2)
{
var earthRadiusInMiles = 3960;
var radianMultipler = Math.PI / 180
var distanceLatitude = (latitude2 - latitude1) * radianMultipler;
var distanceLongitude = (longitude2 - longitude1) * radianMultipler;
var latitude1InRadians = latitude1 * radianMultipler;
var latitude2InRadians = latitude2 * radianMultipler;
var halfChordDistanceSquared = Math.pow(Math.sin(distanceLatitude / 2), 2) +
Math.cos(latitude1InRadians) * Math.cos(latitude2InRadians) *
Math.pow(Math.sin(distanceLongitude / 2), 2);
var angularDistanceInRadians = 2 * Math.asin(Math.sqrt(halfChordDistanceSquared));
var haversineDistance = earthRadiusInMiles * angularDistanceInRadians;
return haversineDistance;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment