提供位置结果的 iPhone 模拟器

Posted

技术标签:

【中文标题】提供位置结果的 iPhone 模拟器【英文标题】:iPhone Simulator providing location results 【发布时间】:2011-02-20 23:43:43 【问题描述】:

我正在使用 ios SDK 4.2 并遵循本教程:http://mobileorchard.com/hello-there-a-corelocation-tutorial/,并在使用 iPhone 和 iPad 的控制台上获取了一些 GPS 日志。

然后我在模拟器上运行它以测试其他功能,CoreLocation 日志命中 locationManager:didFailWithError: 方法,这是公平的,因为 MacBookPro (OSX 10.6.6) 没有 GPS 功能......或者我想。

今天早上,我在工作时而不是在家中再次在 iPad 上进行了测试,现在在没有连接任何设备的情况下在 iPhone 模拟器上进行测试,模拟器提供了我办公室的位置结果(不,我不在库比蒂诺工作)并且水平精度每次在45-56m之间变化,最多只给出两个样本(大概是因为我的笔记本没有移动)。

现在我已经完全关闭了 XCode 和模拟器,并从模拟器中删除了应用程序并执行了清理和重建,但仍然获得了我当前的坐标。我也可以在没有互联网访问的情况下复制它,以防模拟器使用某种 GeoIP 时很棘手。

模拟器从哪里获取我的位置信息?

我想也许今天早上我使用 iPad 时模拟器存储了一些 GPS 位置数据,但没有连接设备并清理启动所有内容,它提供了不同的结果,例如 +/- 0.000001 度数的变化。

【问题讨论】:

【参考方案1】:

来自 MacBook 的 IP 地址,或者,如果它在 WiFi 上,则来自 WiFi 网络的存储位置。由于它对您来说非常准确,所以它是 WiFi,因为 IP 地址方法通常将其范围缩小到一个城市,或者充其量是城市的一部分。

Skyhook 为美国和世界其他一些地区的大多数 WiFi 网络提供地理位置信息,这些信息是 Apple 订阅的。


编辑添加

显然,Apple 去年 4 月放弃了 Skyhook,现在使用自己的数据库,但系统是一样的。就像 Google 在德国陷入困境一样,有人开车四处寻找 WiFi 网络并记录他们的位置。

【讨论】:

另外补充一点,我没有阅读日志上的时间戳。 GPS 的第一个读数始终是它收到的最后一个读数。因此,从外观上看,当它启动模拟 GPS 单元时,即使关闭 wifi 但不查看时间戳,它也会触发位置更改,这是一个新手疏忽。

以上是关于提供位置结果的 iPhone 模拟器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 模拟器上打开位置检测

xcode iphone 模拟器 - 没有虚拟位置

以编程方式通过 USB 模拟 iPhone(真实设备,而非模拟器)位置

Iphone模拟器没有获取位置

在 Iphone 模拟器中测试当前位置

iPhone模拟器位置错误