現在、ユーザーが歩いた/走った/などの距離を測定しています。自分の結果を他のアプリの結果と比較すると、結果は他のアプリほど正確ではありません (つまり、100m は正しく、私の結果は約 50m です)。では、精度を上げてより正確な結果を得るにはどうすればよいでしょうか?
私がこれまでに行っていることは次のとおりです。
CLLocationManager を初期化します。
locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
locationManager.distanceFilter = 10;
と:
- (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
CLLocation *lastLocation = [locations lastObject];
NSTimeInterval age = -[lastLocation.timestamp timeIntervalSinceNow];
if (age > 30.0) return;
if (lastLocation.horizontalAccuracy < 0) return; // ignore invalid updates
if (previousLocation == nil || previousLocation.horizontalAccuracy < 0)
{
previousLocation = lastLocation;
return;
}
CLLocationDistance distance = [lastLocation distanceFromLocation:previousLocation];
if ([delegate respondsToSelector:@selector(currentDistance:)])
{
[delegate currentDistance:distance];
}
previousLocation = lastLocation;
}
乾杯!