Android - 如何找到两点之间的距离 - Java代码?

时间:2013-02-02 11:51:46

标签: java android google-maps distance

我有两点的lat和lan。 我怎么能找到这两点之间的距离? 如果您有任何代码或链接,请建议我。

谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用Android SDK功能distanceBetween

  

计算两个位置之间的近似距离,以及它们之间最短路径的初始和最终方位。距离和方位是使用WGS84椭圆体定义的。

答案 1 :(得分:1)

试试这个,你会得到距离

 private String distance(double lati, double longi, double curlati1,
        double curlongi1) {

    double theta = longi - curlongi1;
    double dist = Math.sin(deg2rad(lati)) * Math.sin(deg2rad(curlati1))
            + Math.cos(deg2rad(lati)) * Math.cos(deg2rad(curlati1))
            * Math.cos(deg2rad(theta));
    dist = Math.acos(dist);
    dist = rad2deg(dist);
    dist = dist * 60 * 1.1515;

    dist = dist * 1.609344;

    result = Double.toString(dist);
    System.out.println("dist_result :" + result);
    return (result);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts decimal degrees to radians : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private double deg2rad(double deg) {
    return (deg * Math.PI / 180.0);
}

/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
/* :: This function converts radians to decimal degrees : */
/* ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: */
private double rad2deg(double rad) {
    return (rad * 180.0 / Math.PI);
}