编程语言
首页 > 编程语言> > C# 获取两经纬度之间的距离

C# 获取两经纬度之间的距离

作者:互联网

C# 获取两经纬度之间的距离

迷恋自留地

//地球半径,单位米
private const double EARTH_RADIUS = 6378137;

/// <summary>
/// 计算两点位置的距离,返回两点的距离,单位:米
/// 该公式为GOOGLE提供,误差小于0.2米
/// </summary>
/// <param name="lng1">第一点经度</param>
/// <param name="lat1">第一点纬度</param>        
/// <param name="lng2">第二点经度</param>
/// <param name="lat2">第二点纬度</param>
/// <returns></returns>
public static double GetDistance(double lng1, double lat1, double lng2, double lat2)
{
    double radLat1 = Rad(lat1);
    double radLng1 = Rad(lng1);
    double radLat2 = Rad(lat2);
    double radLng2 = Rad(lng2);
    double a = radLat1 - radLat2;
    double b = radLng1 - radLng2;
    double result = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) + Math.Cos(radLat1) * Math.Cos(radLat2) * Math.Pow(Math.Sin(b / 2), 2))) * EARTH_RADIUS;
    return result;
}

/// <summary>
/// 经纬度转化成弧度
/// </summary>
/// <param name="d"></param>
/// <returns></returns>
private static double Rad(double d)
{
    return (double)d * Math.PI / 180d;
}

标签:radLat1,Rad,radLat2,经纬度,C#,double,获取,Math
来源: https://www.cnblogs.com/netcore5/p/15256269.html