iOS下获取用户当前位置的信息

#import <MapKit/MKMapView.h>

@interface ViewController (){
    CLLocationManager *_currentLoaction;
    CLGeocoder *_geocoder;
    CLPlacemark *_placeMark;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    _geocoder = [[CLGeocoder alloc] init];
    
    _currentLoaction = [[CLLocationManager alloc] init];
    _currentLoaction.delegate = self;
    [_currentLoaction startUpdatingLocation]; 
}

#pragma mark - Location
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
    NSLog(@"locError:%@", error);
}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
    CLLocationCoordinate2D locat = [newLocation coordinate];
    double lattitude = locat.latitude;
    double longitude = locat.longitude;
    CLGeocodeCompletionHandler handler = ^(NSArray *placemark, NSError *error)
    {
        for (CLPlacemark *mark in placemark) {
            NSMutableDictionary *area_dic = [mark addressDictionary];
            [area_dic setValue:[NSString stringWithFormat:@"%f", lattitude] forKeyPath:@"lattitude"];
            [area_dic setValue:[NSString stringWithFormat:@"%f", longitude] forKeyPath:@"longitude"];
            NSLog(@"area_dic is %@", area_dic);
            
            NSArray *array = [area_dic objectForKey:@"FormattedAddressLines"];
            NSString *address = [area_dic objectForKey:@"FormattedAddressLines"];
            NSLog(@"array is %@", array);
            address = [array objectAtIndex:0];
            NSLog(@"address is %@", address);
            address = [area_dic objectForKey:@"City"];
            NSLog(@"City is %@", address);
        }
    };
    [_geocoder reverseGeocodeLocation:newLocation completionHandler:handler];
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。