首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone全球定位系统开发-提示+技巧

iPhone全球定位系统开发-提示+技巧
EN

Stack Overflow用户
提问于 2009-01-28 15:39:28
回答 2查看 28.2K关注 0票数 18

我正在寻找一些反馈,博客链接等,为iPhone全球定位系统的发展提供了一些技巧和技巧。我已经阅读和理解了API,我已经启动并运行了我的演示应用程序,等等,但我在iphone上遇到了一些使用gps的“怪癖”。例如,当你的iphone进入“省电”模式时,你收到的位置更新似乎会少很多。我读到过,你可以通过在你的应用程序中播放音乐来解决这个问题,但我不确定这是不是真的。

似乎,就制造一个合理的计步器而言,你应该过滤掉任何水平精度低于20米的读数。这听起来对吗?

网上有没有针对iphone gps问题的检查清单?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-28 17:21:24

我不知道具体的清单,但以下是你应该记住的几件事:

  • ,你不是在做全球定位系统的查找。你在做核心位置查找。核心位置可能是也可能不是从GPS获取信息。许多人仍然在使用没有全球定位系统的3g之前的iPhones,甚至在3G手机上也可能在许多情况下无法使用全球定位系统(例如,如果人们在室内)。在这些情况下,手机将尝试基于手机发射塔进行三角测量,而Core Location将返回结果。它的精度远低于GPS。
  • 核心位置将缓存数据。它提供给你的应用程序的第一个读数可能是旧的读数,可能是准确的,也可能不准确,这取决于手机是否移动了。一定要检查任何位置的时间戳,看看它是否是你的应用程序启动前的时间戳。
  • 我不知道你说的“省电”模式是什么意思,但如果你的应用程序还在运行,那么当屏幕被锁定/关闭时,这并不会阻止核心位置的运行。相反,如果你在使用Core Location的应用程序运行时锁定手机,那么手机电池耗尽的速度会比你预期的快得多,因为随着新的位置数据可用,手机会继续更新应用程序。在你的应用程序中,你可以通过监听UIApplicationWillResignActiveNotification来检测屏幕锁定,通过UIApplicationDidBecomeActiveNotification来检测解锁。
  • 更高精度的结果需要更多的时间来获取,因为你等待的时间越长,结果就越好,但有一个限制。如果你决定你需要在N米的范围内,考虑一下用户可能要站在那里等手机回到自己的位置需要多长时间。

20米是否足够精确只有你才能回答,这取决于你期望如何使用你的应用程序。测试这个应用程序,看看它是否按您希望的方式工作。

票数 40
EN

Stack Overflow用户

发布于 2009-01-30 07:13:02

Tom有一个很好的答案(我想特别指出,通常第一个值的返回可能是一个较旧的缓存位置),但我还有一些东西要添加:

  • 如果您想强制位置管理器至少再向您发送一次位置更新,您可以告诉它停止并重新启动。
  • 如果您不知道,CLLocation中有一些方便的方法可以为您提供两个位置之间的距离。
  • 如文档所述,您应该实现locationManager:didFailWithError:即使您不必这样做(如果只是暂时停止位置管理器更新)。
  • 彻底测试用户不允许对您的位置进行位置更新的情况极少数情况下,您可能会获得无序的更新(例如,您得到了一个更准确的位置,然后是一个日期稍早的位置)
  • 模拟器会给您一个位置更新,但始终会将您的位置报告为苹果总部。
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/488088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档