public static double ConvertToFeet(double miles)
public static void Main()
Position qnxtPos = new Position();
qnxtPos.Latitude = Convert.ToDouble(26.081136);
qnxtPos.Longitude = Convert.ToDouble(-80.250788);
Position facetsPos = new Position();
facetsPos.Latitude = Convert.ToDouble(26.081674);
facetsPos.Longitude = Convert.ToDouble(-80.249866);
Haversine calc = new Haversine();
double result = calc.Distance(qnxtPos, facetsPos, DistanceType.Miles);
Console.WriteLine(ConvertToFeet(result));
public double Distance(Position pos1, Position pos2, DistanceType type)
double preDlat = pos2.Latitude - pos1.Latitude;
double preDlon = pos2.Longitude - pos1.Longitude;
double R = (type == DistanceType.Miles) ? 3960 : 6371;
double dLat = this.ToRadian(preDlat);
double dLon = this.ToRadian(preDlon);
double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) + Math.Cos(this.ToRadian(pos1.Latitude)) * Math.Cos(this.ToRadian(pos2.Latitude)) * Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
double c = 2 * Math.Asin(Math.Min(1, Math.Sqrt(a)));
private double ToRadian(double val)
return (Math.PI / 180) * val;