Runtastic、Nike+ などのフィットネス トラッキング アプリを開発しています。アクティビティ全体を最初から最後までマッピングします。アプリの起動時に場所の変更の更新を開始するのではなく、ユーザーがワークアウトを開始したときに開始します。しかし、locationManager が更新を開始すると、最初の 3 ~ 5 個の CLLocation が非常に正しくありません。最大 1 キロメートルのエラー。次のコードを使用して、ロケーション マネージャーを初期化しています。
self.locationManager = [(PFAppDelegate *)[[UIApplication sharedApplication] delegate] locationManager];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
self.locationManager.distanceFilter = 5.0;
[self.locationManager startUpdatingLocation];
そして、locationManagerDidUpdateToLocation メソッドで:
if( didFindGPS == NO )
{
if( [[lastLocation timestamp] timeIntervalSinceNow] < 10.0 )
{
if( [lastLocation horizontalAccuracy] < 20)
{
didFindGPS = YES;
}
}
}
else
{
//process data here
}
これは、最初の間違った場所を除外しません。また、horizontalAccury 値が 20 より小さい場所を無視しようとしましたが、アプリは場所を処理しません。
最初の場所を改善するため、または最初の間違った場所を処理するために何ができますか?