3

CLLocationManagerクラスのドキュメントでは、プロパティについて次のような説明を見つけましたdistanceFilter

このプロパティは、標準の位置情報サービスと組み合わせてのみ使用され、重要な位置の変更を監視する場合には使用されません。

説明していただけますか?

4

2 に答える 2

1

ではCLLocationManagerdistanceFilterデバイスが x メートル移動したときに変更を通知するために使用されます。デフォルト値はkCLDistanceFilterNone:、すべての動きが報告されます。

ドキュメントから

現在の場所の修正を返した後、受信者は、ユーザーの場所の大幅な変更が検出された場合にのみ更新イベントを生成します。たとえば、デバイスが別の基地局に関連付けられると、新しいイベントが生成される場合があります。distanceFilterイベントを生成するためにプロパティの値に依存しません。

startUpdatingLocation メソッドを呼び出して、標準の位置情報サービスを開始します。このサービスは、ロケーション イベントの配信をより細かく制御する必要があるアプリケーションに最適です。具体的には、desiredAccuracy および distanceFilter プロパティの値を考慮して、新しいイベントをいつ配信するかを決定します。ナビゲーション アプリケーションや、高精度の位置データや定期的な更新ストリームが必要なアプリケーションでは、標準の位置情報サービスの精度が必要です。ただし、これらのサービスでは通常、位置追跡ハードウェアを長時間有効にする必要があるため、電力使用量が高くなる可能性があります。

そのためdistanceFilter、 は標準の位置情報サービスと組み合わせてのみ使用され、重要な位置の変化を監視する場合には使用されません。desiredAccuracyまたはheading情報。

これは、一般に、人が x メートル移動したことを知ることはあまり役に立たないためです。ただし、人が z 精度で y 方向に x メートル移動したことを知ることは非常に重要です。

于 2012-06-11T05:11:22.370 に答える
0

標準位置変更:通常の GPS モジュールが使用されます。バッテリー集中型。クラスlocationManagerのインスタンスが次のようにサービスを開始する場合CLLocationManager

[locationManager startUpdatingLocation];

重要な場所の変更:電波塔が変更されたとき。電池持ちが良い。Apple は、電波塔の変更に関する公式文書ではそうは言っていませんが、新機能が出たときに Apple が言ったことは明らかです。

[locationManager startMonitoringSignificantLocationChanges];

重要な場所の変更をサブスクライブする場合、プロパティdistanceFilterは によって無視されます。CLLocationManager

于 2012-08-09T20:49:00.107 に答える