public static void Main()
Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, 'M'));
Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, 'K'));
Console.WriteLine(distance(32.9697, -96.80322, 29.46786, -98.53506, 'N'));
private static double distance(double lat1, double lon1, double lat2, double lon2, char unit)
if ((lat1 == lat2) && (lon1 == lon2))
double theta = lon1 - lon2;
double dist = Math.Sin(deg2rad(lat1)) * Math.Sin(deg2rad(lat2)) + Math.Cos(deg2rad(lat1)) * Math.Cos(deg2rad(lat2)) * Math.Cos(deg2rad(theta));
dist = dist * 60 * 1.1515;
private static double deg2rad(double deg)
return (deg * Math.PI / 180.0);
private static double rad2deg(double rad)
return (rad / Math.PI * 180.0);