谷歌地图**位移**在给定的latlong两点之间

时间:2016-01-02 06:01:33

标签: java google-maps

我在google地图上有两个地方有一些latlong(坐标),是否存在任何google API来查找它们之间的线性位移(不是道路)。或者任何其他图书馆也会存在。

1 个答案:

答案 0 :(得分:1)

如果您只需要在Java中计算点数,则不需要API。 Haversine公式可以做到这一点。这是java实现:

public static double distance(double lat1, double lat2, double lng1,
    double lng2) {

final int R = 6371; // Radius of the earth

Double latDistance = Math.toRadians(lat2 - lat1);
Double lngDistance = Math.toRadians(lng2 - lng1);
Double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2)
        + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))
        * Math.sin(lngDistance / 2) * Math.sin(lngDistance / 2);
Double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double distance = R * c; // convert to meters

return distance;

}