CLLocationManager的distanceFilter属性无法正常工作

时间:2013-09-04 07:46:37

标签: iphone location distance cllocationmanager

我在我的应用程序中使用CLLocationManager。 我正在使用以下代码初始化CLLocationManger。

self.locationManager = [[CLLocationManager alloc] init];
[self.locationManager setDelegate:self];

[self.locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[self.locationManager setDistanceFilter:10.0];
[self.locationManager startUpdatingLocation];

我将distanceFilter设置为10.0米。 现在我没有移动我的设备(它仍然在一个位置)。 但有时会自动调用CLLocationManger的委托。

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
     NSLog(@"Locations : %@", locations);
  } 

如果我的设备在10米左右移动,我想获得新位置。

所以,请告诉我如何使用这个distanceFilter属性并获取新位置。

1 个答案:

答案 0 :(得分:1)

这就是GPS的工作方式,你站着不动,坐在靠近窗户的桌子上,通常有可怕的GPS信号。

GPS并不知道你没有动,特别是当信号不好时,看起来你感动了。因此,你得到一个活动。如果你想做得更好,那么你必须过滤自己,不要依赖苹果距离过滤器。

这可能对您的特殊应用更有效。