私のコードは、精度が 100 未満の場所を受け入れる必要があります。新しい場所の精度が古い場所の精度よりも小さい場合は、新しい場所を使用してください。また、新しい場所から古い場所までの距離が 200 よりも大きい場合は、それを使用します。
理由はわかりませんが、コードをテストした後、データベースで次の場所を取得しました。
最後の 3 つのレコードは互いに 200 m 未満です。どうしてそれらを使用するのですか?? コードは次のとおりです。
int Aloc = (int) loc.getAccuracy();
int AnewLoc = (int) newLoc.getAccuracy();
if(Aloc > AnewLoc +20)
sendTask();
else
{
float distance = loc.distanceTo(newLoc);
if(distance > 200)
sendTask();
}
このコードは、精度が 100 未満の場所に対して実行されます。
条件をに変更した後の編集
if((AnewLoc+20) < Aloc)
以下の記録を受け取りました。
新しい記録は古い記録より精度が高く、彼の距離は 200 (0.01407 km = 14 メートル) 未満です。コードを通過してデータベースに送信される理由がわかりません。