public static void Main()
Console.WriteLine("Hello World");
double lat1 = 16.0269642;
double lat2 = 16.066757202148438;
double lng1 = 108.2102712;
double lng2 = 108.21389007568359;
var result = DistanceTo(lat1, lng1, lat2, lng2);
var result2 = distanceBetween2Points(lat1, lng1, lat2, lng2);
Console.WriteLine(result);
Console.WriteLine(result2);
public static double DistanceTo(double lat1, double lon1, double lat2, double lon2, char unit = 'K')
double rlat1 = Math.PI*lat1/180;
double rlat2 = Math.PI*lat2/180;
double theta = lon1 - lon2;
double rtheta = Math.PI*theta/180;
Math.Sin(rlat1)*Math.Sin(rlat2) + Math.Cos(rlat1)*
Math.Cos(rlat2)*Math.Cos(rtheta);
return Math.Round(dist*1.609344,3);
public static double distanceBetween2Points(double la1, double lo1, double la2, double lo2) {
double dLat = (la2 - la1) * (Math.PI / 180);
double dLon = (lo2 - lo1) * (Math.PI / 180);
double la1ToRad = la1 * (Math.PI / 180);
double la2ToRad = la2 * (Math.PI / 180);
double a = Math.Sin(dLat / 2) * Math.Sin(dLat / 2) + Math.Cos(la1ToRad)
* Math.Cos(la2ToRad) * Math.Sin(dLon / 2) * Math.Sin(dLon / 2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));