Calculating the distance between 2 points in c#

后端 未结 4 1781
借酒劲吻你
借酒劲吻你 2020-12-18 04:41

I am trying to sort out a method to calculate the distance between 2 points in c#.

This is the code I have been trying though I fear the answer I get is not correct.

相关标签:
4条回答
  • 2020-12-18 04:58

    The class I usually use is GeoCoordinate

    double latA = -31.997976f;
    double longA = 115.762877f;
    double latB = -31.99212f;
    double longB = 115.763228f;
    
    var locA = new GeoCoordinate(latA, longA);
    var locB = new GeoCoordinate(latB, longB);
    double distance = locA.GetDistanceTo(locB ); // metres
    
    0 讨论(0)
  • 2020-12-18 05:09

    You can use DbGeography for spatial calculation. It has DbGeography.Distance method which is used to calculate the distance between two gps points.

    Otherwise, try Ref: Harversine Formula to calculate the distance between two points.

    0 讨论(0)
  • 2020-12-18 05:10
    double lat1 = {};
    double lat2 = {};
    double lon1 = {};
    double lon2 = {};
    
    var R = 6376.5000; //Km
    lat1 = lat1.ToRad();
    lat2 = lat2.ToRad();
    lon1 = lon1.ToRad();
    lon2 = lon2.ToRad();
    var dLat = lat2 - lat1;
    var dLon = lon2 - lon1;
    var a = Math.Pow(Math.Sin(dLat / 2), 2) + (Math.Pow(Math.Sin(dLon / 2), 2) * Math.Cos(lat1) * Math.Cos(lat2));
    var c = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
    var distance = R * c;
    
    public double ToRad(this double degs) {
        return degs * (Math.PI/180.0);
    }
    

    Input expects doubles.

    This is the haversine formula, it's used to calculate the distances on our globe between two points. This is the distance in a straight line, if you need the distance on a path you will have to find all points on that path and then calculate the distances between each two points and then take the sum of that.

    0 讨论(0)
  • 2020-12-18 05:10

    Distance Formula: Given the two points (x1, y1) and (x2, y2), the distance between these points is given by the formula:

    enter image description here

    use it accordingly

    0 讨论(0)
提交回复
热议问题