美文网首页
iOS判断当前经纬度是否在中国

iOS判断当前经纬度是否在中国

作者: 读月鱼_Harlan | 来源:发表于2017-05-04 20:27 被阅读0次

    1、要导入定位工具包。

    #import <CoreLocation/CoreLocation.h>

    2、全局CLLocationManager对象,用于定位。一定要全局,不然会因为引用计数变成0导致定位开启就没了后文。一定要全局!一定要全局!重要的事情说三遍。

    @property (nonatomic, strong) CLLocationManager *locationManager;

    3、创建CLLocationManager对象,开启定位方法。

    //开始定位

    - (void)startLocation {

    if ([CLLocationManager locationServicesEnabled]) {

    //        CLog(@"--------开始定位");

    self.locationManager = [[CLLocationManager alloc]init];

    //设置代理

    self.locationManager.delegate = self;

    //控制定位精度,越高耗电量越

    self.locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;

    // 询问用户总是授权可以定位

    [self.locationManager requestWhenInUseAuthorization];

    [self.locationManager requestAlwaysAuthorization];

    self.locationManager.distanceFilter = 10.0f;

    //开始定位

    [self.locationManager startUpdatingLocation];

    }

    }

    4、签订代理<CLLocationManagerDelegate>,并实现两个代理方法

    - (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {    if ([error code] == kCLErrorDenied) {        //        CLog(@"访问被拒绝");    }    if ([error code] == kCLErrorLocationUnknown) {        //        CLog(@"无法获取位置信息");    }}

    //定位代理经纬度回调

    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray*)locations {

    CLLocation *newLocation = locations[0];

    //拿到定位信息,判断是非是中国,判断码是“CN”

    [[[CLGeocoder alloc]init] reverseGeocodeLocation:newLocation completionHandler:^(NSArray *placemarks, NSError *error) {

    if (error || placemarks.count == 0) {

    NSLog(@"不能确定是在中国");

    } else {

    CLPlacemark *placemark=[placemarks firstObject];

    if ([placemark.ISOcountryCode isEqualToString:@"CN"]) {

    NSLog(@"确定是在中国");

    } else {

    NSLog(@"确定不在中国");

    }

    }

    }];

    //系统会一直更新数据,直到选择停止更新,因为我们只需要获得一次经纬度即可,所以获取之后就停止更新

    [manager stopUpdatingLocation];

    }

    5、在infoplist文件中加入Privacy - Location When In Use Usage Description,值为显示的提示信息,可以自定义。

    大功告成!

    相关文章

      网友评论

          本文标题:iOS判断当前经纬度是否在中国

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