La siguiente función calcula la distancia entre dos puntos utilizando
public const double EarthRadius = 6371;
/// <summary>
/// Returns the distance between two geocoordinates
/// </summary>
/// <param name="point1"></param>
/// <param name="point2"></param>
/// <returns></returns>
public static double GetDistance(GeoCoordinate point1, GeoCoordinate point2) {
double result = 0;
double Lat = (point2.Latitude - point1.Latitude) * (Math.PI / 180);
double Lon = (point2.Longitude - point1.Longitude) * (Math.PI / 180);
double a = Math.Sin(Lat / 2) * Math.Sin(Lat / 2) +
Math.Cos(point1.Latitude *(Math.PI / 180)) * Math.Cos(point2.Latitude*(Math.PI / 180)) *
Math.Sin(Lon / 2) * Math.Sin(Lon / 2);
double c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
result = EarthRadius * c;
return result;
}