计算两个经纬度点的实际距离
程序员文章站
2022-10-10 20:38:34
一、概述 因为地球是个球形,所以地球上的两个点,实际上是球面上的两个点,要计算这两个点之间的距离,不能简单的通过直角坐标系来计算。 二、计算方法 1、地球半径取近似值 6378.137km 2、实现代码 以上只给出了公式,并没有详细的原理,仅供参考 参考资料: http://mathforum.or ......
一、概述
因为地球是个球形,所以地球上的两个点,实际上是球面上的两个点,要计算这两个点之间的距离,不能简单的通过直角坐标系来计算。
二、计算方法
1、地球半径取近似值 6378.137km
1 /** 2 * 地球半径 3 * 6378.137km 4 */ 5 public static final double earth_radius = 6.371229*1e6;
2、实现代码
1 /** 2 * 求地球两点距离 3 * @param slat 4 * @param slng 5 * @param elat 6 * @param elng 7 * @return 8 */ 9 public static double latitudelongitudedistearth(double slat, double slng, double elat, double elng) 10 { 11 double x,y,out; 12 double pi=math.pi; 13 14 x=(elat-slat)* pi * executorconstant.earth_radius * math.cos( ((slng+elng)/2) * pi /180)/180; 15 y=(elng-slng)* pi * executorconstant.earth_radius /180; 16 out=math.hypot(x,y); 17 return out; 18 }
以上只给出了公式,并没有详细的原理,仅供参考
参考资料: