1.地理编码: 就是把一个‘地名字符串‘转化成’经纬度‘
[geocoder geocodeAddressString:<#(NSString *)#> completionHandler:<#^(NSArray *placemarks, NSError *error)completionHandler#>]
2.反地理编码: 是把‘经纬度’转换成’地名字符串‘
[geocoder reverseGeocodeLocation:<#(CLLocation *)#> completionHandler:<#^(NSArray *placemarks, NSError *error)completionHandler#>]
3.具体方法调用:
如:
//(1).地理编码
-(void)geocoder{
//1.创建编码/反编码管理器
CLGeocoder *geocoder = [[CLGeocoder alloc]init];
//2.地理编码 :就是将‘地名字符串‘转换成‘经纬度‘
[geocoder geocodeAddressString:@"北京" completionHandler:^(NSArray *placemarks, NSError *error) {
//placemarks 是‘地标‘数组 标记地理位置
CLPlacemark *plmark = placemarks.firstObject;
//获取用户位置信息
CLLocation *loc = plmark.location;
//获取用户经纬度
NSLog( @"地名:%@ 经度:%f 纬度:%f ",plmark.name,loc.coordinate.longitude,loc.coordinate.latitude);
NSLog(@"error%@",error);
}];
}
//2.反地理编码
-(void)reverseGeocoder{
//1.创建编码/反编码管理器
CLGeocoder *geocoder = [[CLGeocoder alloc]init];
//2.反编码: 就是将有‘明确经纬度的位置信息‘转换成对应的‘地名字符串‘
CLLocation *loc = [[CLLocation alloc]initWithLatitude:39 longitude:116];
[geocoder reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError *error) {
//用‘地标‘接收 返回的‘地标数组‘
CLPlacemark *plmark = [placemarks firstObject];
//获取返回的地名
NSLog(@"地名:%@",plmark.name);
}];
}