4

我在我的应用程序中使用 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 属性并获得新的位置。

4

1 回答 1

1

这就是 GPS 的工作原理,你站着不动,可能坐在靠近窗户的桌子上,GPS 信号通常很糟糕。

GPS不知道你没有移动,尤其是在信号不好的时候,它看起来就像你移动了一样。因此你得到一个事件。如果你想做得更好,那么你必须自己过滤,不要依赖苹果距离过滤器。

那么这可能更适合您的特殊应用。

于 2013-10-04T17:42:37.597 回答