【问题标题】:didUpdateLocations always be called several times with different coordinatesdidUpdateLocations 总是用不同的坐标多次调用
【发布时间】: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 在真机上进行测试,速度很快。

我做错了什么?

谢谢!

【问题讨论】:

标签: ios swift core-location


【解决方案1】:

来自 CLLocationManager 类参考:

在请求高精度位置数据时,位置服务提供的初始事件可能没有您请求的精度。定位服务尽快提供初始事件。然后,它会继续以您请求的准确性确定位置,并在数据可用时根据需要提供其他事件。

因此,您检索的第一个位置可能不准确。

【讨论】:

  • desiredAccuracy = kCLLocationAccuracyThreeKilometers 也是一样的。
  • 这是位置管理器的正常行为。第一个位置将尽快交付,即使它不准确。下一个交付的位置更准确,并且可能在(稍微)不同的位置,即使没有移动。如果这不是您想要的,请考虑忽略前两个或三个交付的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
  • 2014-04-13
  • 2013-11-06
  • 2013-10-21
  • 1970-01-01
相关资源
最近更新 更多