如何获得指定精度的一次性位置?

时间:2010-08-12 17:21:08

标签: iphone navigation gps cllocationmanager

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

[locManager startUpdatingLocation];

然后我实现

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

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

locManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

有什么想法?只需要一次准确的读数。难倒。感谢。

1 个答案:

答案 0 :(得分:2)

快速解决方案:

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

更好的解决方案可能是等到精确度停止改善,在过去的5次更新中平均等等。