ルートに沿って 5 つの地域のセットを指定し、地域に出入りするときに通知を送信する iOS 7 アプリに取り組んでいます。
領域は半径 1 km の円形であり、隣接していませんが、それらの間には数 km のスペースがあります。これに少し似ています(これO
は円形の領域であり、-
それらの間のスペースです):
O----O---O-------O---O-----O---O
私は自分の車を運転していくつかのテストを行いましたが、1 つのことを除いて、すべてが正常に機能しているようです。実際に地域を離れたdidExitRegion
ときに呼び出しは発生しませんが、別の地域に入ったときにのみ呼び出されます。イベント ログは次のようになります。
2013-10-17 07:58:56 Entered region A
2013-10-17 08:10:05 Exited region A
2013-10-17 08:10:05 Entered region B
2013-10-17 08:26:15 Entered region C
2013-10-17 08:26:15 Exited region B
2013-10-17 08:51:52 Exited region C
2013-10-17 08:51:52 Entered region D
2013-10-17 09:19:04 Entered region E
2013-10-17 09:19:04 Exited region D
すべての終了イベントは、次の領域の開始イベントとまったく同時に発生することに注意してください。
私は API ドキュメントを読み直しましたが、コメントに気付きましたOnly boundary crossings generate an event.
が、これは、地域を出た瞬間にイベントをトリガーする必要があることを意味していると思います。
デフォルトの精度 ( ) で CLLocationManager を使用しており、監視しているリージョンごとに 1 回kCLLocationAccuracyBest
呼び出します。startMonitoringForRegion
私が見ている行動が予想されるものなのか、それとも私が何か間違ったことをしているのか、誰かが知っていますか?