iOS - 没有互联网连接的 CLGeocoder

Posted

技术标签:

【中文标题】iOS - 没有互联网连接的 CLGeocoder【英文标题】:iOS - CLGeocoder without internet connection 【发布时间】:2015-02-22 11:45:25 【问题描述】:

我正在使用CLGeocoder 在地图上定位地址并计算用户与一大堆地址的距离。

这里是使用CLGeocoder的部分代码:

CLGeocoder *geocoder = [[CLGeocoder alloc] init];
__block float distance;
__block CLLocation *location;
[geocoder geocodeAddressString:adresseFinal completionHandler:^(NSArray *placemarks, NSError *error) 
    if ([placemarks count] > 0) 
        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        location = placemark.location;
        CLLocationCoordinate2D coordinate = location.coordinate;
        distance = [userLocation distanceFromLocation:location];
        [distanceArray addObject:[NSString stringWithFormat:@"%f", distance]];
        MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
        point.coordinate = coordinate;
        point.title = tableNoms[i];
        NSMutableArray *coords = [[NSMutableArray alloc] init];
        [coords addObject:location];
        [coords addObject:userLocation];
        [self.mapView addAnnotation:point];
    
    dispatch_group_leave(group);
];

但是当我尝试在没有互联网连接的情况下使用它时,我收到以下错误:

无法确定当前国家代码:错误域=NSURLErrorDomain 代码=-1009“Internet 连接似乎处于脱机状态。” UserInfo=0x7877f930 NSErrorFailingURLStringKey=http://gsp1.apple.com/pep/gcc, _kCFStreamErrorCodeKey=8, NSErrorFailingURLKey=http://gsp1.apple.com/pep/gcc, NSLocalizedDescription=Internet 连接似乎已脱机。, _kCFStreamErrorDomainKey=12, NSUnderlyingError=0x7877ed30 "Internet 连接似乎已脱机。"

我认为我可以在没有互联网的情况下使用本地化(使用 GPS?)?

我是否必须更改代码中的某些内容才能使用它?

非常感谢!

【问题讨论】:

【参考方案1】:

地理编码与地理定位不同。 GPS 用于确定您的地理位置,其结果是纬度/经度位置。地理编码是在该地理位置和相应地址详细信息之间进行转换的过程。

虽然地理定位不需要 Internet 连接,但地理编码却需要,因为它是在 Apple 数据库中查找地理定位的地址。

【讨论】:

此外,本地化是允许您的应用使用多种语言的过程,因此与实际位置无关。 感谢您的回答,这很清楚。哦,我的本地化不好……愚蠢的错误。非常感谢!

以上是关于iOS - 没有互联网连接的 CLGeocoder的主要内容,如果未能解决你的问题,请参考以下文章

CLGeocoder 在 iOS8 上强制使用特定语言

CLGeocoder 可以在美国以外的全球范围内工作吗?

CLGeocoder 延迟直到完成处理程序

如何在 iOs 中使用 CLGeoCoder 使用邮政编码/邮政编码获取纬度经度?

在 iOS 中使用 CLGeocoder 进行转发地理编码,为某些位置的位置返回 null

iOS CoreLocation CLGeocoder 提供不完整的英国邮政编码