2013-02-02 68 views

回答

2

您可以使用Android SDK功能distanceBetween

计算两个位置之间的近似距离(以米为单位),以及可选的两个位置之间的最短路径的初始和最终方位。距离和方位使用WGS84椭球定义。

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); 
} 
+0

其中单位这个距离是? –

相关问题