didUpdateLocations 总是用不同的坐标多次调用
Posted
技术标签:
【中文标题】didUpdateLocations 总是用不同的坐标多次调用【英文标题】:didUpdateLocations always be called several times with different coordinates 【发布时间】:2014-07-30 08:56:45 【问题描述】:所以,我的应用需要每 15 米捕获一次位置。
在 viewDidLoad 中
NSOperationQueue.mainQueue().addOperationWithBlock
self.manager = CLLocationManager()
self.manager.delegate = self
self.manager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
self.manager.distanceFilter = 15.0
self.manager.headingFilter = 10
self.manager.startUpdatingLocation()
第一次(我不动),在
func locationManager(manager:CLLocationManager, didUpdateLocations locations:[AnyObject])
我得到(真实示例): *.1488241293991 *.5997807433053
第二次: *.1489010891664 *.599624152471
我用 ios7 在真机上进行测试,速度很快。
我做错了什么?
谢谢!
【问题讨论】:
我认为它对你有帮助***.com/questions/24736046/… 【参考方案1】:来自 CLLocationManager 类参考:
在请求高精度位置数据时,位置服务提供的初始事件可能没有您请求的精度。定位服务尽快提供初始事件。然后,它会继续以您请求的准确性确定位置,并在数据可用时根据需要提供其他事件。
因此,您检索的第一个位置可能不准确。
【讨论】:
desiredAccuracy = kCLLocationAccuracyThreeKilometers 也是一样的。 这是位置管理器的正常行为。第一个位置将尽快交付,即使它不准确。下一个交付的位置更准确,并且可能在(稍微)不同的位置,即使没有移动。如果这不是您想要的,请考虑忽略前两个或三个交付的位置。以上是关于didUpdateLocations 总是用不同的坐标多次调用的主要内容,如果未能解决你的问题,请参考以下文章
CLLocationManager didUpdateLocations 没有被称为 iOS 8 的 plist 条目
斯威夫特:我怎样才能减少 didupdatelocation 调用
不能调用 locationManager(_::didUpdateLocations:)