你如何计算GPS JAVA中两点之间的距离? [复制]

Posted

技术标签:

【中文标题】你如何计算GPS JAVA中两点之间的距离? [复制]【英文标题】:How do you calculate the distance between two points in GPS JAVA? [duplicate] 【发布时间】:2012-05-02 08:52:14 【问题描述】:

可能重复:How do I calculate distance between two latitude longitude points?

在JAVA中如何计算经纬度值中的两点之间的距离?

谢谢

【问题讨论】:

【参考方案1】:

看看这个:http://www.zipcodeworld.com/samples/distance.java.html

因为上面的链接坏了,看看这个:Calculate distance between two latitude-longitude points? (Haversine formula)。

这篇文章的摘要:

public final static double AVERAGE_RADIUS_OF_EARTH = 6371;
public int calculateDistance(double userLat, double userLng, double venueLat, double venueLng) 

    double latDistance = Math.toRadians(userLat - venueLat);
    double lngDistance = Math.toRadians(userLng - venueLng);

    double a = (Math.sin(latDistance / 2) * Math.sin(latDistance / 2)) +
                    (Math.cos(Math.toRadians(userLat))) *
                    (Math.cos(Math.toRadians(venueLat))) *
                    (Math.sin(lngDistance / 2)) *
                    (Math.sin(lngDistance / 2));

    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

    return (int) (Math.round(AVERAGE_RADIUS_OF_EARTH * c));


【讨论】:

链接失效了。 Java 答案:***.com/a/12600225/1308743 谢谢,我将它与从 PostgreSql 函数获得的结果集进行了比较,非常接近。但为什么是最后一轮呢?

以上是关于你如何计算GPS JAVA中两点之间的距离? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

GPS已知首尾坐标 如何求距离

如何使用手机gps定位两点之间的直线距离?

计算由 lat,long 表示的两点之间的距离,精度高达 15 英尺

我如何计算Java中两个gps点之间的距离?

获取经纬度之间两点间真实距离(适用于GoogleMap,BaiduMap,Amap等)

如何计算两个GPS坐标点的距离?