1

我记得在某处(我忘了在哪里)读到,如果 iPhone 应用程序只运行一次 CLLocationManager,它并没有得出最准确的结果。

这是准确的,如果是这样,我该如何解决这个问题?我想得出最准确的 GPS 结果,我想知道是否只有一次会产生最好的结果。

谢谢你的帮助!

4

2 回答 2

2
CLLocationManager *locationManager.desiredAccuracy = kCLLocationAccuracyBest;

将为您返回最好的结果。委托方法

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

将继续根据您设置的准确性首选项返回用户的位置。

如果您只需要一次该位置,则需要记住调用stopUpdatingLocationself如果需要不断更新用户的位置,请不要调用stopUpdatingLocation

我正在使用 CoreLocation 来获取用户的位置,这对我来说非常准确。

于 2009-11-27T19:48:14.517 回答
0

您阅读的内容可能来自iPhone 应用程序编程指南

要检索用户的当前位置,请创建 CLLocationManager 类的实例并使用所需的精度和阈值参数对其进行配置。要开始接收位置通知,请为对象分配一个委托并调用 startUpdatingLocation 方法来开始确定用户的当前位置。当新的位置数据可用时,位置管理器会通知其分配的委托对象。如果位置更新已经交付,您还可以直接从 CLLocationManager 对象获取最新的位置数据,而无需等待新事件的交付。

[...]

建议检查事件的时间戳,因为位置服务通常会立即返回最后缓存的位置事件。获得粗略的位置修复可能需要几秒钟,因此旧数据仅用作反映最后已知位置的一种方式。您还可以使用准确性作为确定是否要接受事件的方法。随着它接收到更准确的数据,定位服务可能会返回额外的事件,准确度值相应地反映了改进。

于 2009-11-27T18:36:25.827 回答