3

您如何检查 CLLocation 对象并决定是要使用它还是丢弃结果并获取新的位置更新?

我在 CLLocation 上看到了时间戳属性,但我不确定如何将其与当前时间进行比较。

另外,在我比较时间并找到以秒为单位的差异之后,差异应该在什么值下才能让我使用该 CLLocation 对象?什么是好的门槛。

谢谢!

4

1 回答 1

11

检查时间戳真的很重要,因为 iOS 通常会缓存位置,并且作为第一个度量返回最后缓存的,所以这是我在 Core Location Manager 的委托方法中的操作:

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    CLLocation * newLocation = [locations lastObject];
        //check if coordinates are consistent
        if (newLocation.horizontalAccuracy < 0) {
            return;
        }
        NSTimeInterval interval = [newLocation.timestamp timeIntervalSinceNow];
        //check against absolute value of the interval
        if (abs(interval)<30) {
            //DO STUFF
        }
    }

我用30秒。如您所见,我还检查了询问水平精度的结果的一致性。
希望这会有所帮助,
安德里亚

于 2013-01-02T10:00:51.363 回答