iPhoneアプリケーションがCLLocationManagerを1回実行しただけでは、最も正確な結果が得られなかったことをどこかで読んだことを思い出します(どこを忘れたか)。
これは正確ですか?もしそうなら、どうすればこの問題に対処できますか?最も正確なGPSの結果を考え出したいのですが、1回だけで最良の結果が得られるのではないかと思います。
助けてくれてありがとう!
iPhoneアプリケーションがCLLocationManagerを1回実行しただけでは、最も正確な結果が得られなかったことをどこかで読んだことを思い出します(どこを忘れたか)。
これは正確ですか?もしそうなら、どうすればこの問題に対処できますか?最も正確なGPSの結果を考え出したいのですが、1回だけで最良の結果が得られるのではないかと思います。
助けてくれてありがとう!
CLLocationManager *locationManager.desiredAccuracy = kCLLocationAccuracyBest;
可能な限り最良の結果を返します。デリゲート メソッド
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
は、設定した精度設定に基づいて、引き続きユーザーの位置情報を返します。
場所が一度だけ必要な場合は、忘れずに電話する必要がありstopUpdatingLocation
ますself
。ユーザーの現在地を継続的に更新する必要がある場合は、呼び出さないでください。stopUpdatingLocation
私は CoreLocation を使用してユーザーの位置を取得していますが、私の用途では非常に正確です。
あなたが読んだのは、iPhone Application Programming Guideからの可能性が高いです。
ユーザーの現在地を取得するには、CLLocationManager クラスのインスタンスを作成し、必要な精度としきい値パラメーターを使用して構成します。位置通知の受信を開始するには、デリゲートをオブジェクトに割り当て、startUpdatingLocation メソッドを呼び出して、ユーザーの現在の位置の決定を開始します。新しいロケーション データが利用可能になると、ロケーション マネージャーは割り当てられたデリゲート オブジェクトに通知します。場所の更新が既に配信されている場合は、新しいイベントが配信されるのを待たずに、CLLocationManager オブジェクトから直接最新の場所データを取得することもできます。
[...]
多くの場合、ロケーション サービスは最後にキャッシュされたロケーション イベントをすぐに返すため、イベントのタイムスタンプを確認することをお勧めします。大まかな位置修正を取得するのに数秒かかることがあるため、古いデータは単に最後の既知の位置を反映する方法として機能します. イベントを受け入れるかどうかを決定する手段として精度を使用することもできます。より正確なデータを受け取ると、位置情報サービスは追加のイベントを返す場合があり、それに応じて精度の値に改善が反映されます。