最近在项目中有一个功能需要计算两个经纬度之间的距离,在网上找了很多,也试了很多,下面的计算方法得出的结果是精度是最高,希望对大家有所帮助。
private const double EARTH_RADIUS = 6378137; /// 计算两点位置的距离,返回两点的距离,单位 米 /// 该公式为GOOGLE提供,误差小于0.2米 /// ///第一点纬度 ///第一点经度 ///第二点纬度 ///第二点经度 /// public static double GetDistance(double lat1, double lng1, double lat2, double lng2) { 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; } /// /// 经纬度转化成弧度 /// ////// private static double Rad(double d) { return (double)d * Math.PI / 180d; }
最新评论
兄弟,你网站首页底部的网站地图链接少了一个/
多谢了!!
牛逼的软件,我搞了几个小时去重都没搞定,用这个软件,200W多条的数据,去重只需要3.87秒,太牛逼了这个软件
非常nice,感谢博主
很棒
博主,你好,我想请问一下,我用的是大前端DUX6.3这个版本的模板,但是这个标签似乎是隐藏透明的,看起来特别不舒服,不知道应该怎么修改,希望能给点建议,谢谢!
这个图标确实好看,我特别希望就是这个相关文章推荐,换成文字形式还是比较好看,如果是图文模式就比较难看了,如果能够优化一下就好了,目前我也遇见了这个问题,不晓得怎么调试,希望博主能够分享
感谢分享,成功激活