打印
[程序源码]

最近做GPS,要计算两点间的距离,网上找了段代码求分析

[复制链接]
1198|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xwuzi|  楼主 | 2014-11-6 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
据说是google maps上扒下来的,为什么下面的函数只用了两个坐标,没有用东经西经南纬北纬?

private const double EARTH_RADIUS = 6378.137;
private static double rad(double d)
{
  return d * Math.PI / 180.0;
}

public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
  double radLat1 = rad(lat1);
  double radLat2 = rad(lat2);
  double a = radLat1 - radLat2;
  double b = rad(lng1) - rad(lng2);
  double s = 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)));
  s = s * EARTH_RADIUS;
  s = Math.Round(s * 10000) / 10000;
  return s;
}

相关帖子

沙发
jackwmj1| | 2015-2-7 14:08 | 只看该作者
他这个不是单纯的把地球铺平了算的。

使用特权

评论回复
板凳
a20084666| | 2015-7-2 08:57 | 只看该作者
哥们,这个你搞定了每

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:人生无非是笑笑人家,再被人家笑笑~

43

主题

493

帖子

6

粉丝