Apple的documentation声明,仅建议使用kCLLocationAccuracyBestForNavigation
导航应用程序,并且仅在插入时使用,因为额外的电池使用情况。
我正在开发一个只需定期定位的应用程序,甚至可能每个应用程序加载一次,以找到用户的位置以显示它们附近的一些地方可供选择。所以我经常不需要它,但是当我需要它时,它需要非常准确(并且显然尽可能快)。我的愿望是尽可能快地达到10米精度(或更好)。
如果我使用kCLLocationAccuracyBestForNavigation
:
短时间使用(以秒为单位),这会对电池产生任何有意义的影响吗?或Apple是否针对长期使用此准确度的人提供保守指导?
或许更重要的是,当位置管理员首次启动时,这种准确度会导致更长的等待时间吗?即在报告第一个合理准确的位置之前等待时间?
是否有kCLLocationAccuracyBestForNavigation
和kCLLocationAccuracyBest
之间技术差异的任何文档?即究竟发生了什么让前者变得更准确?
答案 0 :(得分:3)
我真的很怀疑。做这个实验。假设它确实对电池寿命产生了重大影响。如果在短时间内运行GPS,那么使用最佳精确度的应用程序怎么能在很短的时间内杀死你的手机呢?除非最佳精度GPS具有显着的启动电池消耗,然后使用较少的功率,否则它无法实现。我怀疑它是做到了,但现在做这个实验。使用GPS完全运行您的应用程序并监控您的电池使用情况。运行受控实验,重新启动,甚至是干净的手机。观察电池百分比随时间的变化情况。我的猜测是它是线性的,有很大的消耗,可以提高准确度。
之前我使用过混合方法,使用kCLLocationAccuracyKilometer进行初始粗略位置确定。当它出现时,我改为kCLLocationAccuracyBestForNavigation来改进位置。这使您可以快速响应,通常在0.5秒内获得粗略的准确度,然后您可以在几秒钟内(通常在我的测试中大约3秒)获得更好的读数。
我不知道苹果在做什么,但我从geocaching的经验可能有所帮助。一个好的手持GPS平均读数随着时间的推移。因此,您可能会以50英尺的精度开始,然后如果您静止不动并收集更多读数,他们会获得平均值。这可以减少统计错误。