0

可能重复:
如何计算两个经纬度点之间的距离?

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

谢谢

4

1 回答 1

1

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

因为上面的链接坏了看这个:计算两个经纬度点之间的距离?(Haversine 公式)

这篇文章的摘要:

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));

}
于 2012-05-02T08:57:53.427 回答