Skip to content

Instantly share code, notes, and snippets.

@cjus
Created November 9, 2015 19:02
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 cjus/a805c1f1c82478c94871 to your computer and use it in GitHub Desktop.
Save cjus/a805c1f1c82478c94871 to your computer and use it in GitHub Desktop.
Utility for lat lng calculations
/**
* @name geolatlnglib
* @description utilities for lat lng calculations
* @author Carlos Justiniano
*/
//http://stackoverflow.com/questions/27928/how-do-i-calculate-distance-between-two-latitude-longitude-points
function getDistanceFromLatLonInKm(lat1, lon1, lat2, lon2) {
'use strict';
var R = 6371; // Radius of the earth in km
var dLat = deg2rad(lat2 - lat1); // deg2rad below
var dLon = deg2rad(lon2 - lon1);
var a =
Math.sin(dLat / 2) * Math.sin(dLat / 2) +
Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) *
Math.sin(dLon / 2) * Math.sin(dLon / 2)
;
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
var d = R * c; // Distance in km
return d;
}
function deg2rad(deg) {
'use strict';
return deg * (Math.PI / 180);
}
exports.getDistance = function(lat1, lng1, lat2, lng2) {
'use strict';
return getDistanceFromLatLonInKm(lat1, lng1, lat2, lng2) / 0.621371; // return distance in miles
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment