iOS 地址编码解析

//联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄

- (void)viewDidLoad{

[superviewDidLoad];

//创建地址解析器

self.geocoder = [[CLGeocoder alloc] init];

}

//编码

- (IBAction)encodeTapped:(id)sender{

//获取用户输入的地址字符串

NSString* addr =self.addrField.text;

if(addr !=nil&& addr.length >0)

{

[self.geocoder geocodeAddressString:addrcompletionHandler: ^(NSArray *placemarks, NSError *error) {

//如果解析结果的集合元素的个数大于1,表明解析得到了经度、纬度信息

if(placemarks.count >0){

//只处理第一个解析结果,实际项目中可使用列表让用户选择

CLPlacemark* placemark = placemarks[0];

CLLocation* location = placemark.location;

self.resultView.text = [NSString stringWithFormat:@"%@的经度为:%g,纬度为:%g", addr ,location.coordinate.longitude ,location.coordinate.latitude ];

}else{//没有得到解析结果。

//使用UIAlertView提醒用户

[[[UIAlertView alloc] initWithTitle:@"提醒"message:@"您输入的地址无法解析"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil]show];

}

}];

}

}

//反编译

- (IBAction)reverseTapped:(id)sender{

NSString *longitudeStr =self.longitudeField.text;

NSString *latitudeStr =self.latitudeField.text;

if(longitudeStr !=nil&& longitudeStr.length >0&& latitudeStr !=nil&& latitudeStr.length >0){

//将用户输入的经度、纬度封装成CLLocation对象

CLLocation* location = [[CLLocation alloc]initWithLatitude:[latitudeStr floatValue]longitude:[longitudeStr floatValue]];

[self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error){

//如果解析结果的集合元素的个数大于1,表明解析得到了经度、纬度信息

if(placemarks.count >0){

//只处理第一个解析结果,实际项目可使用列表让用户选择

CLPlacemark* placemark = placemarks[0];

//获取详细地址信息

NSArray* addrArray = [placemark.addressDictionaryobjectForKey:@"FormattedAddressLines"];

//将详细地址拼接成一个字符串

NSMutableString* addr = [[NSMutableString alloc] init];

for(inti =0; i < addrArray.count ; i ++){

[addr appendString:addrArray[i]];

}

self.resultView.text = [NSString stringWithFormat:@"经度:%g,纬度:%g的地址为:%@",location.coordinate.longitude ,location.coordinate.latitude , addr];

}else{//没有得到解析结果。

//使用UIAlertView提醒用户

[[[UIAlertView alloc] initWithTitle:@"提醒"message:@"您输入的地址无法解析"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil]show];

}}];}}

谢谢!!!

你可能感兴趣的:(iOS 地址编码解析)