Horje
calculate distance using latitude and longitude c# Code Example
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 =
            Math.Sin(baseRad) * Math.Sin(targetRad) + Math.Cos(baseRad) *
            Math.Cos(targetRad) * Math.Cos(thetaRad);
        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 readonly double _fromMilesFactor;

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

    public double ConvertFromMiles(double input)
    {
        return input*_fromMilesFactor;
    }
} 
calculate distance using latitude and longitude c#
var sCoord = new GeoCoordinate(sLatitude, sLongitude);
var eCoord = new GeoCoordinate(eLatitude, eLongitude);

return sCoord.GetDistanceTo(eCoord);
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;
}




Csharp

Related
c# get list item in random order Code Example c# get list item in random order Code Example
asp net img src path from database Code Example asp net img src path from database Code Example
how to set unique constraint from EF core Code Example how to set unique constraint from EF core Code Example
c# run a scheduled task Code Example c# run a scheduled task Code Example
c# color to console color Code Example c# color to console color Code Example

Type:
Code Example
Category:
Coding
Sub Category:
Code Example
Uploaded by:
Admin
Views:
10