C#计算两个经纬度的距离

女爷i 2022-01-15 00:21 791阅读 0赞

一、C#计算两个经纬度的距离

  1. //地球半径,单位米
  2. private const double EARTH_RADIUS = 6378137;
  3. /// <summary>
  4. /// 计算两点位置的距离,返回两点的距离,单位 米
  5. /// 该公式为GOOGLE提供,误差小于0.2米
  6. /// </summary>
  7. /// <param name="lat1">第一点纬度</param>
  8. /// <param name="lng1">第一点经度</param>
  9. /// <param name="lat2">第二点纬度</param>
  10. /// <param name="lng2">第二点经度</param>
  11. /// <returns></returns>
  12. public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
  13. {
  14. double radLat1 = Rad(lat1);
  15. double radLng1 = Rad(lng1);
  16. double radLat2 = Rad(lat2);
  17. double radLng2 = Rad(lng2);
  18. double a = radLat1 - radLat2;
  19. double b = radLng1 - radLng2;
  20. 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;
  21. return result;
  22. }
  23. /// <summary>
  24. /// 经纬度转化成弧度
  25. /// </summary>
  26. /// <param name="d"></param>
  27. /// <returns></returns>
  28. private static double Rad(double d)
  29. {
  30. return (double)d * Math.PI / 180d;
  31. }

更多:

SqlServer数据查找距离指定坐标附近的数据(一)

发表评论

表情:
评论列表 (有 0 条评论,791人围观)

还没有评论,来说两句吧...

相关阅读

    相关 根据经纬度计算距离

    经纬度简介 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的 假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都

    相关 计算经纬度点间距离

    计算两个经纬度点间的距离 纬度线投射在图上看似水平的平行线,但实际上是不同半径的圆。有相同特定纬度的所有位置都在同一个纬线上。  赤道的纬度为0°,将行星平分为南半球和北