# Answers for "calculate distance using latitude and longitude c#"

0

calculate distance using latitude and longitude c#

``````var sCoord = new GeoCoordinate(sLatitude, sLongitude);
var eCoord = new GeoCoordinate(eLatitude, eLongitude);

return sCoord.GetDistanceTo(eCoord);``````
Posted by: Guest on November-27-2020
0

calculate distance using latitude and longitude c#

``````public class Coordinates
{
public double Latitude { get; private set; }
public double Longitude { get; private set; }

public Coordinates(double latitude, double longitude)
{
Latitude = latitude;
Longitude = longitude;
}
}
public static class CoordinatesDistanceExtensions
{
public static double DistanceTo(this Coordinates baseCoordinates, Coordinates targetCoordinates)
{
return DistanceTo(baseCoordinates, targetCoordinates, UnitOfLength.Kilometers);
}

public static double DistanceTo(this Coordinates baseCoordinates, Coordinates targetCoordinates, UnitOfLength unitOfLength)
{
var baseRad = Math.PI * baseCoordinates.Latitude / 180;
var targetRad = Math.PI * targetCoordinates.Latitude/ 180;
var theta = baseCoordinates.Longitude - targetCoordinates.Longitude;
var thetaRad = Math.PI * theta / 180;

double dist =
dist = Math.Acos(dist);

dist = dist * 180 / Math.PI;
dist = dist * 60 * 1.1515;

return unitOfLength.ConvertFromMiles(dist);
}
}

public class UnitOfLength
{
public static UnitOfLength Kilometers = new UnitOfLength(1.609344);
public static UnitOfLength NauticalMiles = new UnitOfLength(0.8684);
public static UnitOfLength Miles = new UnitOfLength(1);

private UnitOfLength(double fromMilesFactor)
{
_fromMilesFactor = fromMilesFactor;
}

public double ConvertFromMiles(double input)
{
return input*_fromMilesFactor;
}
}``````
Posted by: Guest on November-27-2020
0

calculate distance using latitude and longitude c#

``````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;
double dist =
Math.Sin(rlat1)*Math.Sin(rlat2) + Math.Cos(rlat1)*
Math.Cos(rlat2)*Math.Cos(rtheta);
dist = Math.Acos(dist);
dist = dist*180/Math.PI;
dist = dist*60*1.1515;

switch (unit)
{
case 'K': //Kilometers -> default
return dist*1.609344;
case 'N': //Nautical Miles
return dist*0.8684;
case 'M': //Miles
return dist;
}

return dist;
}``````
Posted by: Guest on November-27-2020