これは、CLLocationManagerクラスリファレンスに記載されています。
高精度の位置データを要求する場合、位置情報サービスによって配信される最初のイベントは、要求した精度を備えていない可能性があります。
これは本当に私のアプリに影響を与えています。見つかった場所が正しい精度のものであることを確認するにはどうすればよいですか?
最初に取得した場所ではなく、4番目または5番目の更新を使用しようとしましたが、これは適切な解決策ではありません。何か案が?
これは、CLLocationManagerクラスリファレンスに記載されています。
高精度の位置データを要求する場合、位置情報サービスによって配信される最初のイベントは、要求した精度を備えていない可能性があります。
これは本当に私のアプリに影響を与えています。見つかった場所が正しい精度のものであることを確認するにはどうすればよいですか?
最初に取得した場所ではなく、4番目または5番目の更新を使用しようとしましたが、これは適切な解決策ではありません。何か案が?
更新の精度を確認する必要があります。精度を確認するために使用できるCLLocation
プロパティが含まれています。が十分に正確であると判断したhorizontalAccuracy
場合は、他のすべてを使用して無視します。CLLocation
CLLocationManager
また、希望する精度を伝える必要があります。これを行うには、 でdesiredAccuracy
プロパティを設定しますCLLocationManager
。
あなたはそれと一緒に生きなければならないと思います。それがAppleがそれを実装した方法です。車のフロント ガラスに取り付けられた GPS デバイスが位置を修正するのにかかる時間を考えてみてください。
したがって、アプリケーションを長時間待機させる代わりに、近くのセルタワーと WiFi ホットスポットに基づいて、すぐに利用できる精度を提供します。より信頼性の高い GPS 修正が行われた場合にのみ、アプリが再度呼び出されて通知されます。
最終的には、細粒度の位置を待っている場所がどこにあるかという問題にすぎません。アプリでは、すぐに取得するより粗粒度のデータを使用して何かを行う可能性がある場所、またはフレームワークではその間、アプリが何か役に立つことをする可能性があります。あなたに決めさせるのがより良い選択だと思います。
アプリの種類によっては、より適切な位置データが得られるとすぐに自動的にズームインするマップを作成したり、予想される位置の周りに小さな円を描いたりすることができます。エンド ユーザーにとって、何も取得せずに待つことほど悪いことはありません。フィードバック。したがって、これはおそらくあなたが望んでいた答えではありませんが、ユーザーの観点から最善を尽くすことをお勧めします.