using System; //================================================================================= // Distance Calculator //'================================================================================= //' This function calculates the distance between two latitude/logitude //' coordinates. Disance can be returned as Nautical Miles, Kilometers, //' or Miles (default). //' //' This function was designed for C# //' //' Accepts: //' Lat1 = Latitude of point one (decimal, required) //' Lon1 = Longitude of point one (decimal, required) //' Lat2 = Latitude of point two (decimal, required) //' Lon2 = Longitude of point two (decimal, required) //' Unit = Non required character K, N, or M //' where: //' K = Kilometers //' N = Nautical Miles //' M = Miles [default] //' //' Provided by: http://www.zip-codes.com //' //' © 2005 Zip-Codes.com, All Rights Reserved //'=================================================================================*/ private double DistanceCalc(double lat1, double lon1, double lat2, double lon2, char unit) { 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 = Math.Acos(dist); dist = rad2deg(dist); dist = dist * 60 * 1.1515; if (unit == 'K') { dist = dist * 1.609344; } else if (unit == 'N') { dist = dist * 0.8684; } return (dist); } //'================================================================================= //' This function converts decimal degrees to radians //'================================================================================= private double deg2rad(double deg) { return (deg * Math.PI / 180.0); } //'================================================================================= //' This function converts radians to decimal degrees //'================================================================================= private double rad2deg(double rad) { return (rad / Math.PI * 180.0); } //'================================================================================= //' Examples //'================================================================================= Console.WriteLine(distance(30.524, -87.235, 34.097, -118.412, "M")); Console.WriteLine(distance(30.524, -87.235, 34.097, -118.412, "K")); Console.WriteLine(distance(30.524, -87.235, 34.097, -118.412, "N"));