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的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOs 中使用 CLGeoCoder 使用邮政编码/邮政编码获取纬度经度?