2010-12-28 16 views
0

私はLocationManagerを使用してユーザーの緯度と経度の値を取得しています。これらの値は定期的にデータベースに更新されます。LocationManagerから座標を使用して距離を計算する方法

ここでは、格納されている緯度と経度の値に基づいて2人のユーザー間の距離を調べる必要があります。私は、2人のユーザー間の距離が(例えば100メートル)未満のときにメッセージを表示したいと思います。誰もチュートリアルやそれを達成するためのいくつかのサンプルコードで私を導くことができます。

答えて

1

Locationクラスをご覧ください。あなたは、緯度と経度を設定することができますし、使用することができますdistanceTo方法がある

+0

返信ありがとう...私はまた、ここで関数を見つけた(http://android.voxisland.com/code_examples/How_to_calculate_the_distance_between_two_GPS_coordinates.rhtml)...私は両方を使用して、どちらがより良い精度をもたらすかを調べる。 –

0

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

数学(数学)はより正確です。わからない –

関連する問題