CLLocationManager requestLocationで位置情報取得まで

iPhone

CLLocationManagerから位置情報を一回のみ取得するにはrequestLocationメソッドを呼べば良い。

requestLocationを呼び出すと、位置情報を取得次第didUpdateLocationsが呼ばれる。

ただ、requestLocationを呼び出してもdidUpdateLocationsが呼び出されるまで時間が10秒ほど空いてしまう時がある。

そういう場合はCLLocationManagerのdesiredAccuracyの精度が高すぎる可能性がある。requestLocationを呼び出し、その精度に沿った位置情報が取得できればすぐにdidUpdateLocationsが呼び出されるのだが、精度以下の位置情報だとdidUpdateLocationsが呼び出されない。
ただ、タイムアウトが設定されているようで、精度が悪くても10秒後には必ず位置情報が送信される仕組みとなっている。

すぐに位置情報が欲しい場合はdesiredAccuracyの精度を下げれば、一応すぐに位置情報が取れる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です