/// <summary> /// Calculates the distance between two coordinates /// </summary> /// <param name="coordinates">Coordinates configuration</param> /// <returns>The distance</returns> public double DistanceBetween(CoordinateDistance coordinates) { if (coordinates == null) throw new Exception("Coordinates configuration is required"); var from = new Coordinate(coordinates.LatitudeFrom, coordinates.LongitudeFrom); var to = new Coordinate(coordinates.LatitudeTo, coordinates.LongitudeTo); var distance = from.Distance(to); return distance; }
public static double CalculateCoordinateDistance(CoordinateDistance data, Boolean returnMiles = true) { double long_1 = Convert.ToDouble(data.long_1); double lat_1 = Convert.ToDouble(data.lat_1); double long_2 = Convert.ToDouble(data.long_2); double lat_2 = Convert.ToDouble(data.lat_2); // convert coordinate into 'radian' format. double mathRadian = 3.14159265358979323846 / 180; lat_1 = lat_1 * mathRadian; long_1 = long_1 * mathRadian; lat_2 = lat_2 * mathRadian; long_2 = long_2 * mathRadian; double earthRadius = 6378.137; double longDiff = long_2 - long_1; // formula for calculate distance between two coordinate and return result in 'KM' double distance = Math.Acos(Math.Sin(lat_1) * Math.Sin(lat_2) + Math.Cos(lat_1) * Math.Cos(lat_2) * Math.Cos(longDiff)) * earthRadius; double result; if (returnMiles == true) { result = ConvertKilometersToMiles(distance); } else { result = distance; } return(result); }
public double CalculateDistanceBetweenCoordinates(CoordinateDistance distance) { return(calculatorService.DistanceBetween(distance)); }
public async Task <ApiResponse <double> > CalculateDistanceBetweenPoints([FromBody] CoordinateDistance coordinates) { return(await ApiResponse <double> .AsyncResulfOf(Task.FromResult(this.coordinatesManager.CalculateDistanceBetweenCoordinates(coordinates)))); }