7

iPhone アプリに GPS 機能を追加しようとしています。ウォーキングやランニングをしながら使うワークアウトアプリです。だから私が GPS を使用したいのは、人が動いている速度を Mph と分/マイルで表示することです。

可能な限り最良の結果を得るには、CLLocationManager をどのように構成すればよいですか? desiredAccuracy と distanceFilter は何を設定すればよいですか?

私は試してみました:

distanceFilter = 10 および desiredAccuracy = kCLLocationAccuracyNearestTenMeters

と読書

CLLocation.speed プロパティ

車で走り回ってテストすると、更新に時間がかかりますが、車の速度計に比べて精度が良いようです。更新の遅延は、GPS の位置を照会するのにかかる時間である可能性が非常に高いことは認識していますが、上記の 2 つのパラメーターを変更するとより良い結果が得られるかどうかはわかりません。

distanceFilter に kCLLocationAccuracyBest とその他の値を使用する必要がありますか?

速度を上げるために CoreLocation を使用している他のユーザーの話を聞くことに興味があります。より正確な結果を得るために何をしていますか?

4

2 に答える 2

6

最良の結果を得るには、kCLLocationAccuracyBest を使用する必要があります。距離フィルターに何を入れるかは、どの障害を入れたいかによって異なります。基本的に、精度と可用性に基づいて決定を下す必要があります。つまり、最高精度の回答が得られない期間中、何を表示するのでしょうか?

1 つのアプローチは、電話に精度の低い回答を提供させ、前回最高の精度の情報を入手したときに何が起こっていたかを予測して、得られた情報が理にかなっているのかどうかを確認することです。

つまり、北に向かって時速 6 マイルでジョギングしているとします。ポイント A、ポイント B、ポイント C に沿って私をプロットすると、精度の低い答えが得られます (おそらく kCLLocationAccuracyNearest100Meters です)。速度の変化を合理的に調整して、現在の経路に沿って続行した場合、ポイント C からスポットを見つけることはできますか?」もしそうなら、新しいポイントは可能性の範囲内です. (そうでない場合は、投げ捨ててください。)次に、ポイントCから私の最後の既知の速度で投影し、弾道的に私がおそらくいると思われる場所を見つけます。これを ballistic-point-D として保存します。

もちろん、あなたは加速度計を使って、私がどちらに行ったかのある種の慣性感覚をつかんでいますよね? したがって、方向を知ることはできません (電話がどちらを向いているかはわかりません) が、距離を置いて妥当な刺突を行うことはできます。

このすべての情報を使用して、私がいる可能性が最も高いと思われる場所をプロットします。

注: テストするときは、良好なセル カバレッジ エリアだけを走行しないでください。携帯電話から離れた丘でアプリがどのように機能するかを確認してください。多くの人がそれらの地域で自転車やジョギングをするのが好きです!

于 2009-04-10T15:20:28.843 に答える
3

免責事項: 私は CoreLocation で少し遊んだだけで、正確さをあまり詳しくテストしていません。

distanceFilter と desiredAccuracy のデフォルトを使用すると、最も正確な結果が得られると思います。更新頻度が低いと、処理するデータが少なくなるだけです。

発生する可能性が高い問題の 1 つは、位置情報の修正がしばらく失われてから戻ってくる場合です。移動距離を計算する単純な点と点をつなぐアプローチは、ランナーの実際の速度を過小評価する傾向があります。CLLocation.speed を使用するよりも、ランナーが実際にたどっているラインのヒューリスティックな近似値に基づいて速度を計算すると、より良い結果が得られる場合があります。

于 2009-02-24T17:28:36.557 に答える