【问题标题】:Using kCLLocationAccuracyBestForNavigation for non-navigation使用 kCLLocationAccuracyBestForNavigation 进行非导航
【发布时间】:2015-04-26 14:22:36
【问题描述】:

Apple 的 documentation 指出,仅建议在导航应用程序中使用 kCLLocationAccuracyBestForNavigation,并且仅在插入时使用,因为会消耗额外的电池。

我正在开发一个只需要定期定位的应用程序,甚至可能每次应用加载只需要一次,以找到用户的位置,以便向他们显示附近的一些地方可供选择。所以我并不经常需要它,但是当我需要它时,它需要非常准确(并且显然尽可能快)。我的愿望是尽可能快地达到 10m 精度(或更好)。

如果我使用kCLLocationAccuracyBestForNavigation

  1. 在短时间(以秒为单位)使用时,这会对电池产生任何有意义的影响吗?还是 Apple 的保守指导是针对长期使用此准确度级别的人?

  2. 也许更重要的是,这种精确度水平是否会导致位置管理器首次启动时的等待时间更长? IE。在报告第一个相当准确的位置之前的等待时间?

  3. 是否有任何关于kCLLocationAccuracyBestForNavigationkCLLocationAccuracyBest 之间技术差异的文档? IE。究竟发生了什么使前者更准确?

【问题讨论】:

    标签: ios core-location cllocationmanager


    【解决方案1】:
    1. 我真的很怀疑。做这个实验。假设它确实对电池寿命有重大影响。如果在短时间内运行 GPS 会显着消耗电池电量,那么一个使用最佳精度的应用程序怎么可能不会在很短的时间内杀死您的手机?除非最准确的 GPS 启动时会消耗大量电池,然后使用更少的电量,否则它不能。我怀疑它会这样做,但现在做这个实验。使用 GPS 完全运行您的应用程序并监控您的电池使用情况。运行一个受控实验,重新启动,甚至可能是一部干净的手机。观察电池电量百分比如何随时间降低。我的猜测是它是线性的,为了更高的准确性而消耗很大。

    2. 我以前使用过混合方法,使用 kCLLocationAccuracyKilometer 进行初始粗略位置确定。当它出现时,我更改为 kCLLocationAccuracyBestForNavigation 以优化位置。这可以让您快速响应,粗略准确度通常在 0.5 秒以下,然后您可以在几秒后(在我的测试中通常为 3 左右)获得更好的读数。

    3. 我不知道苹果在做什么,但我的寻宝经验可能会有所帮助。一个好的手持式 GPS 会随着时间的推移平均其读数。因此,您可能会从 50 英尺的精度开始,然后如果您静止不动并收集更多读数,它们就会得到平均值。这可以减少您的统计错误。

    【讨论】:

    • 我在这个用例中也成功地使用了#2 方法。请注意 CLLocation 返回一个准确度值,因此您可以在您的委托中跟踪准确度,并在达到所需准确度(或时间限制)后调用 stopUpdatingLocation()
    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多