CoreLocation フレームワーク (GPS 追跡用) を使用する iOS では、継続的な更新を取得する代わりに位置情報を要求するにはどうすればよいですか。didUpdateToLocation を毎秒呼び出す必要はありません。必要なときに場所を取得したいだけです。
ありがとう!
CoreLocation フレームワーク (GPS 追跡用) を使用する iOS では、継続的な更新を取得する代わりに位置情報を要求するにはどうすればよいですか。didUpdateToLocation を毎秒呼び出す必要はありません。必要なときに場所を取得したいだけです。
ありがとう!
これを行う方法があるとは思いません。更新を開始してから、didUpdateToLocation で更新を無効にして、1 つだけ取得することができます。
コメントで提案したように、 と を自由に組み合わせて使用できます-startUpdatingLocation
。-stopUpdatingLocation
場所の更新を受信したときに更新を停止すると、再度開始しない限り続行されません。以下の例:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
//Store your new location before stopping updates.
[manager stopUpdatingLocation];
}
さて、アプリで別の機会に新しい場所を取得したいとき。更新頻度は 1 回だけなので気にする必要はありません。
[locationManager startUpdatingLocation];
これが理にかなっており、役立つことを願っています!
位置情報を正常に取得したら、位置情報サービスを停止します
メソッドを呼び出すとstartUpdatingLocation
、最初にキャッシュされたポイントが返されます。そのため、デリゲート メソッドdidUpdateToLocation
では、その場所の精度を確認する必要があります。許容範囲内にない場合は、その場所を無視する必要があります。ポイントが許容範囲内に収まるまで位置を取得し続ける必要があります。そのようなポイントを受け取ったら、 に電話する必要がありますstopUpdatingLocation
。
できません。ハードウェア (ラジオなど) の速度が十分ではありません。代わりに、場所が必要になる少し前に startUpdatingLocation メソッドを呼び出し、無線が必要なだけ正確な修正を取得するのを待つ必要があります (最初のいくつかの場所のコールバックはあまり正確ではないか、後のコールバックほど正確ではない可能性があります)。 . その後、バッテリ寿命を節約するために、位置情報の更新が長期間必要ない場合は、位置情報の更新を停止できます。