我记得在某处(我忘了哪里)读到如果一个iPhone应用程序只运行一次CLLocationManager,它就没有得到最准确的结果。
这是否准确,如果是,我该如何解决这个问题?我想提出最准确的GPS结果,我想知道是否只有一次会产生最佳效果。
感谢您的帮助!
答案 0 :(得分:2)
CLLocationManager *locationManager.desiredAccuracy = kCLLocationAccuracyBest;
将为您返回最佳结果。委托方法
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
将根据您设置的准确度偏好继续返回用户的位置。
如果您只需要一次该位置,则需要记住在stopUpdatingLocation
上致电self
。如果您需要持续更新用户的位置,请不要致电stopUpdatingLocation
我正在使用CoreLocation来获取用户的位置,这对我的使用非常准确。
答案 1 :(得分:0)
您阅读的内容可能来自iPhone Application Programming Guide:
检索用户的当前信息 location,创建一个实例 CLLocationManager类和configure 它具有所需的准确性和 阈值参数。开始 接收位置通知, 为该对象分配一个委托 调用startUpdatingLocation方法 开始确定 用户的当前位置。什么时候新的 位置数据可用, 位置管理员通知其分配的 委托对象。如果位置更新 已经交付,你可以 还可以获取最新的位置数据 直接来自CLLocationManager 对象无需等待新事件 交付。
[...]
检查事件的时间戳是 建议因为位置 服务经常返回最后一个缓存 位置事件立即。它可以 需要几秒钟才能获得粗糙 位置修复所以旧数据简单 作为反映最后一个的方式 已知位置。你也可以使用 准确性作为一种确定手段 是否要接受活动。 因为它收到更准确的数据,所以 位置服务可能会额外返回 事件,具有准确性值 反映改进 相应