1.导入MapKit,CoreLocation库
2.viewController文件
#import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController ()<CLLocationManagerDelegate> { CLLocationManager *_locationManager; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //1.创建locationManager _locationManager = [[CLLocationManager alloc] init]; //2.info.plist文件加入字段 //NSLocationWhenInUseDescription //NSLocationAlwaysUsageDescription if (![CLLocationManager locationServicesEnabled]) { NSLog(@"定位服务未打开"); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请打开定位服务" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; } //3.请求权限(一直允许访问位置信息) [_locationManager requestAlwaysAuthorization]; //程序运行期间允许访问位置信息 //[_locationManager requestWhenInUseAuthorization]; //4.定位精确度 _locationManager.desiredAccuracy = kCLLocationAccuracyBest; //设置隔多少米后更新位置信息 _locationManager.distanceFilter = 100; _locationManager.delegate = self; //5.开启定位 [_locationManager startUpdatingLocation]; } #pragma mark --CLLocationManagerDelegate--- //权限状态改变 -(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status { NSLog(@"%i",status); //给出相应提示信息 if (status != kCLAuthorizationStatusAuthorizedAlways) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"请设置程序允许访问位置信息" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alert show]; } else { [_locationManager startUpdatingLocation]; } } //更新到用户位置信息 -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *location = [locations firstObject]; NSLog(@"%f-%f",location.coordinate.latitude,location.coordinate.longitude); //反编码 CLGeocoder *geo = [[CLGeocoder alloc] init]; [geo reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { NSLog(@"%@",error); }]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
时间: 2024-12-19 04:08:35