Ios 将kCLLocationAccuracyBestForNavigation用于非导航

Ios 将kCLLocationAccuracyBestForNavigation用于非导航,ios,core-location,cllocationmanager,Ios,Core Location,Cllocationmanager,苹果公司声明,由于额外的电池使用,建议仅在导航应用程序中使用kCLOCATIONACURACYBESTFORNAVISION,并且仅在插入电源时使用 我正在开发一个应用程序,它只需要定期定位,甚至每次加载一次应用程序,就可以找到用户的位置,并显示附近的一些地方供用户选择。所以我并不经常需要它,但当我需要它时,它需要非常准确(而且显然要尽可能快)。我的愿望是尽可能快地达到10米的精度(或更好) 如果我使用kCLLocationAccuracyBestForNavigation: 在短时间内(以秒为

苹果公司声明,由于额外的电池使用,建议仅在导航应用程序中使用
kCLOCATIONACURACYBESTFORNAVISION
,并且仅在插入电源时使用

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

如果我使用
kCLLocationAccuracyBestForNavigation

  • 在短时间内(以秒为单位)使用时,这会对电池产生任何有意义的影响吗?或者苹果的保守指导是针对长期使用这种精度水平的人的

  • 也许更重要的是,当location manager首次启动时,这种级别的准确性是否会导致更长的等待时间?即,在报告第一个合理准确的位置之前的等待时间

  • 关于导航的
    kCLOCATIONACURACYBEST
    kCLOCATIONACURACYBEST
    之间的技术差异,是否有任何文档记录?也就是说,到底发生了什么,使得前者更准确

  • 我真的很怀疑。做这个实验。假设它确实对电池寿命有重大影响。如果在短时间内运行GPS会消耗大量电池,那么一个使用最佳精度的应用程序怎么可能不会在很短的时间内杀死你的手机呢?除非最精确的GPS在启动时电池耗电量很大,然后在启动后耗电更少,否则无法实现。我怀疑它能做到,但现在做这个实验。在GPS已满的情况下运行应用程序,并监控电池使用情况。运行一个受控实验,重新启动,甚至可能是一部干净的手机。观察电池百分比如何随时间降低。我的猜测是,它是线性的,为了获得更高的准确度,它消耗了大量的能量

  • 我以前使用过一种混合方法,使用kCLLocationAccuracyKilometer进行初始粗略定位。当出现这种情况时,我将更改为kCLLocationAccuracyBestForNavigation以优化位置。这可以让你有一个快速的响应,通常在0.5秒以下的粗略精度,然后你可以在几秒钟后得到更好的读数(在我的测试中通常是3秒左右)

  • 我不知道苹果在做什么,但我在地理缓存方面的经验可能会有所帮助。一个好的手持式GPS会根据时间平均其读数。所以你可以从50英尺的精度开始,然后如果你站着不动,收集更多的读数,它们会得到平均值。这减少了统计错误

  • 我在这个用例中也成功地使用了#2方法。注意CLLocation返回一个精度值,因此您可以跟踪代理中的精度,并在达到所需精度(或时间限制)后调用
    stopUpdateingLocation()