从我们的位置找到最近的位置

时间:2012-05-16 10:48:21

标签: android geolocation locationmanager

我正在开发一个Android应用程序。

我从服务器获取纬度和经度列表。

我必须根据我的位置安排这些值。我的意思是最近的纬度/经度,然后是下一个等等。

我的纬度和经度以及纬度和经度列表。我怎样才能找到最近的那个?

3 个答案:

答案 0 :(得分:1)

伪代码:


location.distanceTo(locFromServer);
and for the sorting  
Colection.sort(listOfLocations;new Comparator(){
compareTo(){
// location.distanceTo(locFromServer) 
}
}

答案 1 :(得分:1)

您可以简单地计算用户位置与下载位置的距离,并选择最小的位置。

看看这里:Quicker way to calculate geographic distance between two points

答案 2 :(得分:1)

这可能不是最好的方法,但它有效:)

public static final double PI = 3.14159265;
    public static final double deg2radians = PI/180.0;
    public static final double miles = 0.000621371192;
    public static final double kms = 0.001;

    public static double getDistance(double latitude1, double longitude1, double latitude2,double longitude2) {

         double distance;  

         Location locationA = new Location("point A");  

         locationA.setLatitude(latitude1);  
         locationA.setLongitude(longitude1);  

         Location locationB = new Location("point B");  

         locationB.setLatitude(latitude2);  
         locationB.setLongitude(longitude2);  

         distance = locationA.distanceTo(locationB); 
         double radd = distance * kms;

         return radd;
    }