欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

计算两个经纬度点的实际距离

程序员文章站 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     }

以上只给出了公式,并没有详细的原理,仅供参考

参考资料: