美文网首页
iOS开发-地图03-地理编码

iOS开发-地图03-地理编码

作者: MonkeyHeng | 来源:发表于2016-02-26 02:50 被阅读78次
    #import "ViewController.h"  
    #import <CoreLocation/CoreLocation.h>  
      
    @interface ViewController ()  
      
    /** 
     *  需要编码的地址容器 
     */  
    @property (weak, nonatomic) IBOutlet UITextField *addressField;  
    /** 
     *  经度容器 
     */  
    @property (weak, nonatomic) IBOutlet UILabel *longitudeLabel;  
    /** 
     *  纬度容器 
     */  
    @property (weak, nonatomic) IBOutlet UILabel *latitudeLabel;  
    /** 
     *  详情容器 
     */  
    @property (strong, nonatomic) IBOutlet UITextField *detailAddressView;  
    /** 
     *  地理编码对象 
     */  
    @property (nonatomic, strong) CLGeocoder *geocoder;  
      
      
    @end  
      
    @implementation ViewController  
      
      
    - (IBAction)geocodeBtnClick:(id)sender {  
          
        // 0、获取地理位置  
        NSString *placeStr = self.addressField.text;  
          
        // 1.创建地理编码对象  
          
        // 2.利用地理编码对象编码  
        // 根据传入的地址获取该地址对应的经纬度信息  
        [self.geocoder geocodeAddressString:placeStr completionHandler:^(NSArray *placemarks, NSError *error) {  
              
            // 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.detailAddressView.text = strM;  
      
              
        }];  
    }  
      
      
    - (CLGeocoder *)geocoder {  
        if (_geocoder == nil) {  
            _geocoder = [[CLGeocoder alloc] init];  
        }  
        return _geocoder;  
    }  
      
      
    @end 
    

    相关文章

      网友评论

          本文标题:iOS开发-地图03-地理编码

          本文链接:https://www.haomeiwen.com/subject/mltukttx.html