0

私はAndroidアプリケーションを開発しています。

サーバーから緯度と経度のリストを取得しています。

私は自分の場所に基づいてそれらの値を調整する必要があります。私は最初に最も近い緯度/経度を意味し、次に次のものなどを意味します。

緯度と経度、および緯度と経度のリストがあります。どうすれば最も近いものを見つけることができますか?

4

3 に答える 3

1

擬似コード:

location.distanceTo(locFromServer);
とソートのために  
Colection.sort(listOfLocations; new Comparator(){
compareTo(){
// location.distanceTo(locFromServer)
}
}
于 2012-05-16T10:53:12.583 に答える
1

ダウンロードした場所までのユーザーの位置の距離を計算し、最小のものを選択するだけです。

ここを見てください:2点間の地理的距離を計算するより速い方法

于 2012-05-16T10:57:18.467 に答える
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;
    }
于 2012-05-16T11:01:26.847 に答える