获取地理位置


#import <CoreLocation/CoreLocation.h>
@interface FuJinVC ()<CLLocationManagerDelegate>
@property (nonatomic , strong) CLLocationManager *manager;
- (void)viewDidLoad {
    [super viewDidLoad];
    
    [self location];
}
- (void)location{
    self.manager = [[CLLocationManager alloc] init];
    self.manager.delegate = self;
    [self.manager requestWhenInUseAuthorization];
    self.manager.desiredAccuracy = kCLLocationAccuracyThreeKilometers;

    [self.manager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    DLog(@"失败%@",error);
     [manager stopUpdatingLocation];
}
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
    NSLog(@"授权状态改变");
}
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
{
    DLog(@"%@定位中",locations);
    CLLocation *new = [locations lastObject];
    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder reverseGeocodeLocation:new completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
        DLog(@"%@数组 %@错误",placemarks,error);
        if (placemarks.count > 0) {
            CLPlacemark *placemark = [placemarks objectAtIndex:0];
            NSString *city = placemark.administrativeArea;//获取城市
            NSString *country = placemark.country;// 获取国家
            DLog(@"位于:%@,%@",city,country);
            DLog(@"%@",placemark.addressDictionary[@"Name"]);

        }
    }];
    
    
    
    [manager stopUpdatingLocation];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容