注意:Error Domain=kCLErrorDomain Code=8 "(null)" 如果出现这个错误 一定是 经纬度有问题 一定是 经纬度有问题 一定是 经纬度有问题
- (void)reverseGeocoder{
//创建地理编码对象
CLGeocoder *geocoder=[[CLGeocoder alloc]init];
//经度
NSString *longitude = @"116.4582890000";
//纬度
NSString *latitude = @"39.9127500000";
//创建位置
CLLocation *location=[[CLLocation alloc]initWithLatitude:[latitude floatValue] longitude:[longitude floatValue]];
//根据经纬度反向地理编译出地址信息
[geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *array, NSError *error){
if (array.count > ){
CLPlacemark *placemark = [array objectAtIndex:];
//获取城市
NSString *city = placemark.locality;
if (!city) {
//四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市)
city = placemark.administrativeArea;
}
NSLog(@"city = %@", city);//沈阳市
NSLog(@"--%@",placemark.name);//黄河大道21号
NSLog(@"++++%@",placemark.subLocality); //浑南区
NSLog(@"country == %@",placemark.country);//中国
NSLog(@"administrativeArea == %@",placemark.administrativeArea); //辽宁省
NSString *addressStr = [NSString stringWithFormat:@"%@ %@ %@ %@",placemark.administrativeArea,city,placemark.subLocality,placemark.name];
NSLog(@"administrativeArea == %@",addressStr);
}
else if (error == nil && [array count] == )
{
NSLog(@"No results were returned.");
}
else if (error != nil)
{
NSLog(@"An error occurred = %@", error);
}
}];
}