【发布时间】:2011-04-01 14:19:36
【问题描述】:
我正在开发一个基于 GPS 的应用程序。所以我想知道如何在 iphone 模拟器上模拟位置? 我下载了一个示例应用程序 locateMe。此应用程序不适用于模拟器。模拟器不支持定位api吗?
任何帮助将不胜感激。
【问题讨论】:
-
XCode 4.2 现在支持位置模拟,但仅限注册开发者使用。
标签: iphone ios ios-simulator core-location
我正在开发一个基于 GPS 的应用程序。所以我想知道如何在 iphone 模拟器上模拟位置? 我下载了一个示例应用程序 locateMe。此应用程序不适用于模拟器。模拟器不支持定位api吗?
任何帮助将不胜感激。
【问题讨论】:
标签: iphone ios ios-simulator core-location
更新: 带有 iOS 5 的 Xcode 4.2 支持 GPS 定位。
选择模拟器 -> 调试 -> 位置 -> 自定义位置...
以前的版本
不,模拟器不支持。因此,对于 GPS,您必须在设备中安装应用程序才能对其进行检查。
模拟器会给你经度和纬度作为苹果总部所在的库比蒂诺的地址。
所以你只能使用设备。
快乐编码
【讨论】:
解决方案是继承 CLLocationManager 并定义一个新的委托 @protocol,称为 DLocationManagerDelegate。
它被设计为 CLLocationManagerDelegate 的简单替代品,当部署在实际设备上时,它可以编译成一个非常薄的层。
在设备上运行时,它将使用 CoreLocation 正常返回数据,但在模拟器中,它将从文本文件(在 DLocationManager.h 文件中定义)读取纬度和经度。
我希望这会有所帮助,实现很简单,您必须 startUpdatingLocation 和 stopUpdatingLocation 来更新显示。
【讨论】:
在 Xcode 4.2 中我们可以模拟 .调试区域上有一个位置符号(在您运行应用程序时)。有一些预定义的位置。我们也可以add新的GPX文件
【讨论】:
您可能想通过http://github.com/futuretap/FTLocationSimulator查看我的 FTLocationSimulator
它读取由 Google 地球生成的 KML 文件以提供伪造的位置更新。它还使用模拟的位置更新更新 MKMapView 中的蓝色 userLocation 点。
【讨论】:
根据the documentation,使用模拟器时:
"报告的重定位 CoreLocation 框架中的 模拟器固定在以下 坐标(精度 100 米), 对应于 1 个无限循环, 加利福尼亚州库比蒂诺 95014。
纬度:37.3317 北经度: 122.0307 西"
因此,实际上,您应该能够构建应用程序,但您不太可能用它做任何有用的事情。
【讨论】: