2

タイトルがあいまいな場合は申し訳ありませんが、私の状況に正確にタイトルを付ける方法はありません. GPS を使用する iPhone 用のアプリを作成しています。このdidUpdateLocations:方法では、任意のサイズの変数に対して位置の水平方向の精度をテストします (50 に設定しました。これが出発点として適しているように思えたからです)。水平精度が 50 未満の場合は、位置を保存し、カウンターをインクリメントして、位置が正常に収集されたことを示します。水平精度がテストに合格しない場合、ロケーション成功カウンターが減少します。水平精度テスト値を調整する式を考え出そうとしています。

精度テストにカウンターを使用するだけであれば、問題は簡単に解決できますが、線形性の低いものを望んでいました。精度テスト変数が最初は急速にゼロに近づき、近づくにつれて遅くなるように、カウンターをある意味で重み付けしたいと思います。

私はこのように機能するものを持っていましたが、精度テスト変数が正確すぎて GPS が一致しなくなると、発振し始めました。その後、1 から 80 程度の値の間をジャンプするだけです。外観は次のとおりです。

int previousCounter = successCounter;

if (location.horizontalAccuracy < accuracy)
{
    // save location...
    successCounter++;
}
else
    successCounter--;

int direction = previousCounter - successCounter;
accuracy = 50 - direction * pow(successCounter, 2);

私はこのことを何時間もいじっていて、実用的なものを手に入れることができないようで、グーグルを検索してみましたが、何を探すべきか正確にはわかりません. ここで誰かが助けてくれることを願っています。

4

1 に答える 1

0

私は方程式なしで、これに線形アプローチを使用することになりました。少し調整するためだけに、successCounter の増分に重み付けすることになるかもしれません。最終的に、線形アプローチは、私が達成しようとしていたことに対して十分すぎるほどでした。このことは、アプリでフィールド テストを行った後にわかりました。考えてみると、これは私が達成しようとしていたことを実際に達成することさえできなかったので、線形アプローチを使用することになりました。私は当初、このアルゴリズムが GPS の適応精度を提供することを意図していましたが、実際には、現在の読み取り値の精度に関する情報を提供するためにのみ有効であることに気付きました。ちょっと失敗 :/

于 2012-10-29T15:26:32.103 に答える