您如何检查 CLLocation 对象并决定是要使用它还是丢弃结果并获取新的位置更新?
我在 CLLocation 上看到了时间戳属性,但我不确定如何将其与当前时间进行比较。
另外,在我比较时间并找到以秒为单位的差异之后,差异应该在什么值下才能让我使用该 CLLocation 对象?什么是好的门槛。
谢谢!
您如何检查 CLLocation 对象并决定是要使用它还是丢弃结果并获取新的位置更新?
我在 CLLocation 上看到了时间戳属性,但我不确定如何将其与当前时间进行比较。
另外,在我比较时间并找到以秒为单位的差异之后,差异应该在什么值下才能让我使用该 CLLocation 对象?什么是好的门槛。
谢谢!
检查时间戳真的很重要,因为 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秒。如您所见,我还检查了询问水平精度的结果的一致性。
希望这会有所帮助,
安德里亚