0

有人对如何在位置管理器上获得最佳水平精度有任何建议吗?我已将所需的精度设置为 NearestTenMeters,但鉴于精度始终会根据覆盖区域而变化,我如何才能在 locationManager 中编写一些代码以仅在获得最佳水平精度后才停止更新?

4

2 回答 2

1

如果您希望它具有一定的准确性,请设置委托方法

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

具有

if(newLocation.horizontalAccuracy <= (some number) )
    [locationManager stopUpdatingLocation];

类似的东西。

于 2010-10-29T21:13:12.613 回答
0

通常,硬件开启的时间越长,获得的位置越多,它就越准确。您可以尝试尽早打开管理器以使其准确,然后获取位置。当目标移动时,它也有帮助,当 gps 移动时,芯片能够获得更准确的读数。此外,设备的位置也会有所不同,如果您在野外,您将获得比在掩体中更好的读数,因此有时您获得的读数是可用的最佳读数。您的代码可以等到它在一段时间内不再从位置管理器获得更新,然后它可能处于最佳准确性。

于 2009-08-14T16:16:47.277 回答