私はAndroidアプリケーションを開発しています。
サーバーから緯度と経度のリストを取得しています。
私は自分の場所に基づいてそれらの値を調整する必要があります。私は最初に最も近い緯度/経度を意味し、次に次のものなどを意味します。
緯度と経度、および緯度と経度のリストがあります。どうすれば最も近いものを見つけることができますか?
私はAndroidアプリケーションを開発しています。
サーバーから緯度と経度のリストを取得しています。
私は自分の場所に基づいてそれらの値を調整する必要があります。私は最初に最も近い緯度/経度を意味し、次に次のものなどを意味します。
緯度と経度、および緯度と経度のリストがあります。どうすれば最も近いものを見つけることができますか?
擬似コード:
location.distanceTo(locFromServer); とソートのために Colection.sort(listOfLocations; new Comparator(){ compareTo(){ // location.distanceTo(locFromServer) } }
ダウンロードした場所までのユーザーの位置の距離を計算し、最小のものを選択するだけです。
ここを見てください:2点間の地理的距離を計算するより速い方法。
これは最善の方法ではないかもしれませんが、うまくいきます:)
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;
}