modules/utils/calc.js
function distance(lat1, lon1, lat2, lon2) {
  let R = 6371; // Radius of the earth in km
  let dLat = _deg2rad(lat2-lat1);  // deg2rad below
  let dLon = _deg2rad(lon2-lon1);
  let 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)
  ;
  let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  let d = R * c; // Distance in km
  return d * 0.621371; // Return distance in miles
}
function distance(lat1, lon1, lat2, lon2) {
  let R = 6371; // Radius of the earth in km
  let dLat = _deg2rad(lat2-lat1);  // deg2rad below
  let dLon = _deg2rad(lon2-lon1);
  let 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)
  ;
  let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  let d = R * c; // Distance in km
  return d * 0.621371; // Return distance in miles
}
function distance ( lat1 , lon1 , lat2 , lon2 ) { let R = 6371 ; // Radius of the earth in km let dLat = _deg2rad ( lat2 - lat1 ) ; // deg2rad below let dLon = _deg2rad ( lon2 - lon1 ) ; let 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 ) ; let c = 2 * Math . atan2 ( Math . sqrt ( a ) , Math . sqrt ( 1 - a ) ) ; let d = R * c ; // Distance in km return d * 0.621371 ; // Return distance in miles }
Right Track calculation helper functions
@module utils/calc
 
Calculate the (Great-Circle) Distance between two points
@param {number} lat1 Latitude of Point 1
@param {number} lon1 Longitude of Point 1
@param {number} lat2 Latitude of Point 2
@param {number} lon2 Longitude of Point 2
@returns {number} distance between points in miles
Right Track calculation helper functions