私はLocationManagerを使用してユーザーの緯度と経度の値を取得しています。これらの値は定期的にデータベースに更新されます。LocationManagerから座標を使用して距離を計算する方法
ここでは、格納されている緯度と経度の値に基づいて2人のユーザー間の距離を調べる必要があります。私は、2人のユーザー間の距離が(例えば100メートル)未満のときにメッセージを表示したいと思います。誰もチュートリアルやそれを達成するためのいくつかのサンプルコードで私を導くことができます。
私はLocationManagerを使用してユーザーの緯度と経度の値を取得しています。これらの値は定期的にデータベースに更新されます。LocationManagerから座標を使用して距離を計算する方法
ここでは、格納されている緯度と経度の値に基づいて2人のユーザー間の距離を調べる必要があります。私は、2人のユーザー間の距離が(例えば100メートル)未満のときにメッセージを表示したいと思います。誰もチュートリアルやそれを達成するためのいくつかのサンプルコードで私を導くことができます。
Locationクラスをご覧ください。あなたは、緯度と経度を設定することができますし、使用することができますdistanceTo方法がある
王pode utilizarエステmetodo queのEU desenvolvi ... それとも、私が開発したこの方法を使用することができます...
public static Double distance(latitudeA, latitudeB, longitudeA, longitudeB) {
double radius = 3958.75;
double dlat = ToRadians(Double.parseDouble(String.valueOf(latitudeB))
- Double.parseDouble(String.valueOf(latitudeA)));
double dlon = ToRadians(Double.parseDouble(String.valueOf(longitudeB))
- Double.parseDouble(String.valueOf(longitudeA)));
double a = Math.sin(dlat/2)
* Math.sin(dlat/2)
+ Math.cos(ToRadians(Double.parseDouble(String.valueOf(latitudeA))))
* Math.cos(ToRadians(Double.parseDouble(String.valueOf(latitudeB)))) * Math.sin(dlon/2)
* Math.sin(dlon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
Double d = radius * c;
double meterConversion = 1609.00;
return d * meterConversion;
}
private static double ToRadians(double degrees) {
double radians = degrees * 3.1415926535897932385/180;
return radians;
}
数学(数学)はより正確です。わからない –
返信ありがとう...私はまた、ここで関数を見つけた(http://android.voxisland.com/code_examples/How_to_calculate_the_distance_between_two_GPS_coordinates.rhtml)...私は両方を使用して、どちらがより良い精度をもたらすかを調べる。 –