アプリケーションで 2 つの GEO ロケーションを取得しており、それらの間の距離を計算する必要があります。距離の計算後、その結果を定義済みのしきい値と比較する必要があり50 meters
ます。また、現在、私のAndroidフォンは同じ場所にありますが、間隔を置いて決定された2つの2つのジオロケーション間の計算距離は常に50メートルを超えています。それはどのように可能ですか?私は50メートルのしきい値を次のように取っています:
private static final float DISTANCE_CHANGE_METERS = 50.0f; //50 meters
そして、StackOverflowで見つけた次の式で距離を計算しています:
public static float distFrom(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2 - lat1);
double dLng = Math.toRadians(lng2 - lng1);
double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLng / 2) * Math.sin(dLng / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double dist = earthRadius * c;
int meterConversion = 1609;
return new Float(dist * meterConversion).floatValue();
}
この点で私を助けてください。ありがとう!