gpsを使用するアプリを開発しています。高精度が必要なので、desiredAccuracy に kCLLocationAccuracyBestForNavigation を使用しました。アプリを実行しているとき、次のメソッドが期待どおりに呼び出されます。
(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
このメソッド内で、次のコード セグメントで精度が十分かどうかを確認しています。
if (newLocation.horizontalAccuracy <= locationManager.desiredAccuracy) {
...
}
しかし、newLocation.horizontalAccuracy が 17.00 メートルを下回らないため、この if ブロックがアクティブになることはありません。iPhone 3GS OS 3.1.2 でこのコードを実行していたとき、すべて正常に動作していました。しかし、4.0.1にアップグレードして以来、精度に問題があるようです。iOS 3.1.2 でもスムーズで安定して動作していた kCLLocationAccuracyNearestTenMeters でも機能しません。
何が起こっているのか、どうすれば問題を解決できるのか、何かヒントはありますか?