地理编码

//pragma mark - 地理编码
// 监听地理编码点击事件
- (IBAction)geocodeBtnClick;
// 需要编码的地址容器
@property (weak, nonatomic) IBOutlet UITextField *addressField;
// 经度容器
@property (weak, nonatomic) IBOutlet UILabel *longitudeLabel;
// 纬度容器
@property (weak, nonatomic) IBOutlet UILabel *latitudeLabel;
// 详情容器
@property (weak, nonatomic) IBOutlet UILabel *detailAddressLabel;
//地理编码对象
@property (nonatomic ,strong) CLGeocoder *geocoder;

  • (IBAction)geocodeBtnClick{
    // 0.获取用户输入的位置
    NSString *addressStr = self.addressField.text;
    if (addressStr == nil || addressStr.length == 0) {
    NSLog(@”请输入地址”);
    return;}
    // 1.创建地理编码对象
    // 2.利用地理编码对象编码
    // 根据传入的地址获取该地址对应的经纬度信息
    [self.geocoder geocodeAddressString:addressStr completionHandler:^(NSArray *placemarks, NSError *error{
    if (placemarks.count == 0 || error != nil) {
    return ;
    }
    // placemarks地标数组, 地标数组中存放着地标, 每一个地标包含了该位置的经纬度以及城市/区域/国家代码/邮编等等…
    // 获取数组中的第一个地标
    CLPlacemark *placemark = [placemarks firstObject];
    // for (CLPlacemark *placemark in placemarks) {
    // NSLog(@”%@ %@ %f %f”, placemark.name, placemark.addressDictionary, placemark.location.coordinate.latitude, placemark.location.coordinate.longitude);
    self.latitudeLabel.text = [NSString stringWithFormat:@”%f”, placemark.location.coordinate.latitude];
    self.longitudeLabel.text = [NSString stringWithFormat:@”%f”, placemark.location.coordinate.longitude];
    NSArray *address = placemark.addressDictionary[@”FormattedAddressLines”];
    NSMutableString *strM = [NSMutableString string];
    for (NSString *str in address) {
    [strM appendString:str];
    }
    self.detailAddressLabel.text = strM;
    // }
    }];
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值