GPS Distance Function

Here's a C# method for calculating the distance (in nautical miles) between two GPS coordinates.

Download
Code
  1 /// <summary>
  2
/// Calculates the distance in nautical miles between two GPS coordinates.
  3
/// Equations from http://mathforum.org/library/drmath/view/51879.html
  4
/// </summary>
  5
/// <param name="lon1"></param>
  6
/// <param name="lat1"></param>
  7
/// <param name="lon2"></param>
  8
/// <param name="lat2"></param>
  9
/// <returns></returns>
 10
public static double CalculateDistanceBetweenGPSCoordinates(double lon1, double lat1, double lon2, double lat2) {
 11     
const double R = 3956;
 12     
const double degreesToRadians = Math.PI / 180;
 13
 14     
//convert from fractional degrees (GPS) to radians
 15     
lon1 *= degreesToRadians;
 16     
lat1 *= degreesToRadians;
 17     
lon2 *= degreesToRadians;
 18     
lat2 *= degreesToRadians;
 19
 20     
double dlon = lon2 - lon1;
 21     
double dlat = lat2 - lat1;
 22     
double a = Math.Pow(Math.Sin(dlat / 2), 2) + Math.Cos(lat1) * Math.Cos(lat2) * Math.Pow(Math.Sin(dlon / 2), 2);
 23     
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
 24     
double d = R * c;
 25
 26     
return d;
 27
}