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

2016-02-26  本文已影响78人  MonkeyHeng
#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 
上一篇下一篇

猜你喜欢

热点阅读