代码之家  ›  专栏  ›  技术社区  ›  Mick F

为什么CLLocationManager在设置为低精度时如此懒惰?

  •  1
  • Mick F  · 技术社区  · 15 年前

    我通过测试发现,将 CLLocationManager 导致此组件出现错误行为。

    1. 将所需精度设置为 kCLLocationAccuracyHundredMeters . 那设备就不能像我想的那样准确地找到我的位置。这是我妈妈的日志 CLLocationManager公司

      Accuracy is 1500.000000 (desired accuracy is 100.000000)
      Accuracy is 1500.000000 (desired accuracy is 100.000000)
      

    2. 将desire accuracy设置为 kCLLocationAccuracyBest . 然后设备找到我了!相同的日志:

      Accuracy is 1500.000000 (desired accuracy is -1.000000)
      ...
      Accuracy is 162.957953 (desired accuracy is -1.000000)
      ...
      Accuracy is 76.356886 (desired accuracy is -1.000000)
      ...
      Accuracy is 47.421634 (desired accuracy is -1.000000)
      

      我在同一地点,我是测试1,但这一次,该设备能够找到我的位置与精度我想要的第一(即100.0)。

    为了得到相同的结果,我多次重复这两个测试。

    有人知道为什么iPhone设备在我设定准确度时不更努力地寻找我的位置吗 K校准精度数百米

    我假设将精确度设置为 可能会打开一些不同的硬件传感器,但这不能被视为一个错误?我在网上找不到与这个问题相关的东西。

    谢谢分享你的经验。 (测试是用一个3GS设备通过Wi-Fi和电话网络进行的)

    1 回复  |  直到 11 年前
        1
  •  1
  •   Joe Sunday    15 年前

    更精细的设置将试图通过手机和Wi-Fi三角定位,这是不准确的。kCLLocationAccuracyBest将打开GPS模块并使用它,它应该在几英尺之内。这不是一个错误,你在这两种情况下都得到了你要求的准确度。