【问题标题】:distanceFilter property of CLLocationManager is not working properlyCLLocationManager 的 distanceFilter 属性无法正常工作
【发布时间】:2013-09-07 15:01:56
【问题描述】:

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

【问题讨论】:

  • 您是否发现即使不移动 10 米也能获得位置更新的问题?我也有同样的问题。

标签: iphone location distance cllocationmanager


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    相关资源
    最近更新 更多