0

在文档中,它说它获得了一个大概的位置,然后以越来越精细的精度不断更新。我有一个按钮

[locManager startUpdatingLocation];

然后我实施

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
    [locManager stopUpdatingLocation];
}

并让它在某个地方找到方向。出于某种原因,当我开车去某个地方时,它不会更新位置。我认为这是因为它获得了“一般位置”,然后没有足够的时间来获得准确的读数。我也有

locManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

有什么想法吗?只需要一次准确的读数。难住了。谢谢。

4

1 回答 1

2

快速破解解决方案:

if (newLocation.horizontalAccuracy > 2*locManager.desiredAccuracy) {
  return;
}

更好的解决方案可能是等到准确性停止提高,平均过去 5 次左右的更新。

于 2010-08-12T18:28:53.913 回答