我开始混淆CLLocationManager,并试图使用下面的回调方法。我去了外面在我的iPhone上测试它,并且在前几次更新时,我似乎正在得到一些乱码值,就像突然间我的距离是39米,即使我没有移动到任何地方。或者有时它会从5开始,然后跳到20米,再次没有我移动到任何地方。我走出去走了,从最初的起点看起来更新似乎是'好',然后当我回到原点时,我回到了原来的39米的起点。我想知道我在下面做的是否正确。我还包含了我的viewDidLoad方法,用于初始化我的CLLocationManager对象。使用CLLocationManager获取精确的位置
有没有办法确保我的第一个值是准确的?提前致谢。
- (void)viewDidLoad
{
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
if (startingPoint == nil) {
NSLog(@"NIL starting point");
self.startingPoint = newLocation;
}
CLLocationDistance distance = [newLocation distanceFromLocation:startingPoint];
NSString *distanceString = [[NSString alloc] initWithFormat:@"%g m", distance];
distanceLabel.text = distanceString;
[distanceString release];
numberOfUpdates++;
NSString *countString = [[NSString alloc] initWithFormat:@"%d", numberOfUpdates];
countLabel.text = countString;
[countString release];
}