using Plugin.Geolocator.Abstractions;
public static class CommonExtensions
public static double ToRadian(this double value)
return (Math.PI / 180) * value;
public static void Main()
GetDistanceInMiles((33.01132,-96.59337),(33.00409,-96.35437);
public struct GeoCoordinates : ICloneable
public bool IsEmpty { get { return Longitude.Equals(0) && Latitude.Equals(0); } }
public string Text { get { return ToString(); } }
return new GeoCoordinates()
public new string ToString()
return Latitude + "," + Longitude;
private GeoCoordinates _currentGeoCoordinates = new GeoCoordinates();
public double GetDistanceInMiles(GeoCoordinates geoCoordinatesX, GeoCoordinates geoCoordinatesY)
double deltaLatitude = (geoCoordinatesY.Latitude - geoCoordinatesX.Latitude).ToRadian();
double deltaLongitude = (geoCoordinatesY.Longitude - geoCoordinatesX.Longitude).ToRadian();
Math.Sin(deltaLatitude / 2) *
Math.Sin(deltaLatitude / 2) +
Math.Cos(geoCoordinatesX.Latitude.ToRadian()) *
Math.Cos(geoCoordinatesY.Latitude.ToRadian()) *
Math.Sin(deltaLongitude / 2) *
Math.Sin(deltaLongitude / 2);
return 3960 * (2 * Math.Asin(Math.Min(1, Math.Sqrt(a))));