我借了我朋友的第一代iPod touch来测试我的应用程序。我把操作系统升级到iOS 3.1.3。
我一直在跟随大书呆子牧场书,我试图得到的位置显示在日志中,但它是在一个视图,而不是应用程序委托。
报告了位置,但出于某种原因,它给出了她的地址,超过300英里远....
单独的地图应用程序报告它无法确定我的位置
我打开和关闭了地理定位服务,我只能找到我的家庭网络,所以我不能让设备忘记她的网络。
下面是我使用的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager startUpdatingLocation];
}
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%@", newLocation);
}
我做错了什么?
编辑:我的家庭网络连接到离她的300英里的地方
同时日志结果为:
<anumber,anumber>+/- 144.27m (speed -1.00 mps / course -1.00) @ 2009-06-28 17:58:08 +0100
它似乎认为这是2009年…
谢谢大家
看起来它正在使用一个缓存的位置,在你现在的地方,它不能得到一个位置修复。试着在有很多WiFi的地方(城市/大郊区)再测试一次。另外,检查一下你是否能在地图应用程序中找到一个位置。
没什么问题,iPod touch没有GPS芯片。它使用WiFi ESSID的三角测量来确定它的位置。
需要网络连接才能正确执行
有一次WiFi路由器的时区设置不正确,这就把ipod上的位置信息搞砸了。
你有iPhone吗?
- 确保GPS处于开启状态(运行地图一点,在蓝点周围的小精度圈)。
- 确保它可以看到你的WiFi网络(加入它)。
或许也可以在其他iPhone上试试。
将设备与iTunes同步,并希望苹果的位置/ESSID数据库在不久的将来被这些iphone更新:)