我目前正在测量用户步行/跑步/等的距离。当我将我的结果与其他应用程序的结果进行比较时,我的结果不如其他应用程序那么准确(即 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;
}
干杯!