【问题标题】:Reasonable length of time to determine user's location iPhone确定用户位置 iPhone 的合理时间长度
【发布时间】:2009-08-04 07:12:25
【问题描述】:

我正在编写一个基于位置的应用程序,并且我目前拥有第一代 iPhone,但我想知道 iPhone 3G 或 3G 需要多长时间才能使用 GPS 芯片确定其位置?

据我了解,locationManager:didUpdateToLocation:fromLocation: 可能会不断被调用,并提供越来越准确的位置信息(无法保证)。所以我想创建一个计时器,如果用户的位置不是通过时间 x 确定的,那么我们只需停止尝试确定它并使用我们所拥有的。

另外,有没有办法可以查出设备是否有 GPS 芯片?我知道我可以简单地查看 UIDevice 中的设备类型并区分 touch 和 iphone,但是不带 GPS 和带 GPS 的 iPhone 怎么样?

谢谢!

【问题讨论】:

    标签: iphone gps core-location


    【解决方案1】:

    我不是 iPhone 中 GPS 实施方面的专家,但我可以评论 GPS 单元找到其位置所需的时间长度。

    GPS 获取卫星并获得定位所需的时间取决于两件事 - 天空视图的质量和 GPS 对卫星星座的了解程度。

    第一个很重要,因为 GPS 必须能够看到卫星才能接收信号。在英国,如果您站在朝北的墙边,那么您将很难看到卫星,因为所有轨道都不会超过北约 50-55 度,因此您将被限制在低位的卫星上天空和它们轨道的最北端。

    第二个因素取决于 GPS 上次看到卫星并下载轨道信息(年历和星历)以来的时间。如果 GPS 有最新的卫星数据和良好的视野,那么它通常可以在几秒钟内找到新的修复。如果 GPS 断电或数据过时,则需要 32 秒加上卫星搜索时间来加载新数据。对于我使用的大多数 GPS 引擎,第一次修复的时间通常在 45 到 50 秒左右。

    【讨论】:

      【解决方案2】:

      对于您的最后一个答案,我会将您指向this SO question。根据它的 iPhone1,1 还是 iPhone1,2 可以判断它是否有 GPS 芯片。

      对于你问题的第一部分,我可以告诉你我是如何在我的应用程序中做到这一点的。我启动了两个计时器,比如一个 shortTimer 和一个 longTimer,它们都调用相同的回调方法。回调方法一直等到两个计时器都被触发,然后才继续做一些其他的工作。启动计时器后,我立即开始监听位置更新。如果在 locationManager:didUpdateToLocation:fromLocation 方法中接收到的位置是最新且足够准确的,我会过早地触发长计时器(即在它自己触发之前)。

      这样,我至少等待 shortTimer 的超时以获取最近的准确位置,最多等待 longTimer 的超时。那些合理的价值观?实验一下我会说。因为在继续之前我有一个带有公司徽标的闪屏,所以我的 shortTimer 相当长(即 4 秒)。我的 longTimer 设置为 20 秒。这似乎对我有用。

      HTH

      【讨论】:

        【解决方案3】:

        我会说让它尝试一分钟以确定您的位置。根据我在 iPhone 上的谷歌地图上对我的位置进行三角测量的经验,到那时它通常会给我一个答案。当然,这取决于您的粒度 - 如果您要求一公里精度,您可能会比定义最佳时更快地得到答案。

        至于设备是否是带 GPS 的 iPhone - CoreLocation 旨在在不知情/不关心的情况下为您提供答案。如果安装了 GPS,您想获得最佳可用位置吗?如果是这样,请使用 kCLLocationAccuracyBest,您将获得设备支持的最准确的更新。

        如果您获得 GPS 锁定,您的准确度(以水平准确度衡量)将小于 10m。任何更大的东西,你都没有 GPS 锁,或者至少,不是一个好的锁。

        您还会发现垂直精度将出现在启用 GPS 的设备上,而不是在非 GPS 设备上启用。

        【讨论】:

          猜你喜欢
          • 2013-12-04
          • 2011-03-21
          • 1970-01-01
          • 2012-09-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多