public static double CalcDistance(double lat1, double lng1, double lat2, double lng2, GeoCodeCalcMeasurement m) { double radius = GeoCodeCalc.EarthRadiusInMiles; if (m == GeoCodeCalcMeasurement.Kilometers) { radius = GeoCodeCalc.EarthRadiusInKilometers; } return radius * 2 * Math.Asin(Math.Min(1, Math.Sqrt((Math.Pow(Math.Sin((DiffRadian(lat1, lat2)) / 2.0), 2.0) + Math.Cos(ToRadian(lat1)) * Math.Cos(ToRadian(lat2)) * Math.Pow(Math.Sin((DiffRadian(lng1, lng2)) / 2.0), 2.0))))); }
public static double CalcDistance(string latLng1, string latLng2, GeoCodeCalcMeasurement m) { try { double lat1, lng1, lat2, lng2; string[] latlngArray = latLng1.Split(','); lat1 = Convert.ToDouble(latlngArray[0]); lng1 = Convert.ToDouble(latlngArray[1]); latlngArray = latLng2.Split(','); lat2 = Convert.ToDouble(latlngArray[0]); lng2 = Convert.ToDouble(latlngArray[1]); return(GeoCodeCalc.CalcDistance(lat1, lng1, lat2, lng2, m)); } catch (Exception ex) { return(0); } }
internal static double CalcDistance(double lat1, double lng1, double lat2, double lng2, GeoCodeCalcMeasurement m) { double radius = GeoCodeCalculator.EarthRadiusInMiles; if (m == GeoCodeCalcMeasurement.Kilometers) { radius = GeoCodeCalculator.EarthRadiusInKilometers; } return(radius * 2 * Math.Asin( Math.Min(1, Math.Sqrt( Math.Pow(Math.Sin((DiffRadian(lat1, lat2)) / 2.0), 2.0) + Math.Cos(ToRadian(lat1)) * Math.Cos(ToRadian(lat2)) * Math.Pow(Math.Sin((DiffRadian(lng1, lng2)) / 2.0), 2.0) ) ) )); }
//dsfsdfsdfsdf //sdfsdfs //sdfbsdfhjsd //dsjhfkdjs //sdjgfsdgjfgds //ksdhfhsdgj public static double CalcDistance(TelegramBot.Models.LocationM Location1, TelegramBot.Models.LocationM Location2, GeoCodeCalcMeasurement m) { double radius = GeoCodeCalc.EarthRadiusInMiles; if (m == GeoCodeCalcMeasurement.Kilometers) { radius = GeoCodeCalc.EarthRadiusInKilometers; } return(radius * 2 * Math.Asin(Math.Min(1, Math.Sqrt((Math.Pow(Math.Sin((DiffRadian(Location1.X, Location2.X)) / 2.0), 2.0) + Math.Cos(ToRadian(Location1.X)) * Math.Cos(ToRadian(Location2.X)) * Math.Pow(Math.Sin((DiffRadian(Location1.Y, Location2.Y)) / 2.0), 2.0)))))); }
/// <summary> /// Calculate the distance between two geocodes. /// </summary> public static double CalcDistance(double ALat1, double ALong1, double ALat2, double ALong2, GeoCodeCalcMeasurement AMeasurement) { double radius = (AMeasurement == GeoCodeCalcMeasurement.Kilometers ? Utils.EarthRadiusInKilometers : Utils.EarthRadiusInMiles); return (radius * 2 * Math.Asin( Math.Min( 1, Math.Sqrt( ( Math.Pow( Math.Sin( ( DiffRadian( ALat1, ALat2 ) ) / 2.0 ), 2.0 ) + Math.Cos( ToRadian( ALat1 ) ) * Math.Cos( ToRadian( ALat2 ) ) * Math.Pow( Math.Sin( ( DiffRadian( ALong1, ALong2 ) ) / 2.0 ), 2.0 ) ) ) ) )); }
/// <summary> /// Calculate the distance between two geocodes. /// </summary> public static double CalcDistance(double ALat1, double ALong1, double ALat2, double ALong2, GeoCodeCalcMeasurement AMeasurement) { double radius = (AMeasurement == GeoCodeCalcMeasurement.Kilometers ? Utils.EarthRadiusInKilometers : Utils.EarthRadiusInMiles); return(radius * 2 * Math.Asin(Math.Min(1, Math.Sqrt((Math.Pow(Math.Sin((DiffRadian(ALat1, ALat2)) / 2.0), 2.0) + Math.Cos(ToRadian(ALat1)) * Math.Cos(ToRadian(ALat2)) * Math.Pow(Math.Sin((DiffRadian(ALong1, ALong2)) / 2.0), 2.0)))))); }