CLLocationCoordinate2D 纬度和经度始终为零

Posted

技术标签:

【中文标题】CLLocationCoordinate2D 纬度和经度始终为零【英文标题】:CLLocationCoordinate2D latitude & longitude always zero 【发布时间】:2014-10-21 09:33:09 【问题描述】:

我正在尝试获取纬度和经度。我在实际设备上运行以下代码,但纬度和经度总是为零。我还导入库并设置委托。我可以知道什么是错的,怎么办?我的设备有 ios 8。

CLLocationManager *locationManager = [[CLLocationManager alloc] init];

if ([locationManager locationServicesEnabled])

    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    locationManager.distanceFilter = kCLDistanceFilterNone;
    [locationManager startUpdatingLocation];



CLLocation *location = [locationManager location];
CLLocationCoordinate2D coordinate = [location coordinate];

NSString *str=[[NSString alloc] initWithFormat:@" latitude:%f longitude:%f",coordinate.latitude,coordinate.longitude];
NSLog(@"%@",str);

【问题讨论】:

是否调用了委托方法?您需要按照此处的建议对 iOS 8 进行一些更改 ***.com/questions/25844430/… 您是否将调试设置为某个位置? 如何设置调试到位置? @noobsmcgoobs 我的代表没有被叫到。我已将 NSLocationWhenInUseUsageDescription 和 NSLocationAlwaysUsageDescription 都放在我的 plist 中。当我调用位置时,我的应用会提示用户提醒是否允许。但是,我点击b4,它会自动关闭。 @Bhumit 另外请注意,模拟器有问题,有时会给出随机的纬度和经度。我怀疑这与新的 OSX 有关。 【参考方案1】:

您必须在委托方法中获取当前位置

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

    CLLocation *currentLocation = [locations objectAtIndex:0];

【讨论】:

委托未被调用。我可以知道我该怎么做吗? 希望对您有所帮助:ioscreator.com/tutorials/…

以上是关于CLLocationCoordinate2D 纬度和经度始终为零的主要内容,如果未能解决你的问题,请参考以下文章

在自定义纬度/经度处创建新的 CLLocationCoordinate2D

如何在 Objective C 中使用 RestKit 将纬度和经度字段映射到单个 CLLocationCoordinate2D?

如何通过电子邮件发送 CLLocationCoordinate2D 作为链接

[CLLocationCoordinate2d]?没有名为 subscript 的成员

在 Swift 3 中解析 JSON (CLLocationCoordinate2D)

使用 Swift 将 CLLocationCoordinate2d 转换为街道地址