• 获取经纬度 CLLocation


     

    //导入库

    #import <CoreLocation/CoreLocation.h>

     

    //注意:

    //需要在 info.plist 中导入前两个字段

    //NSLocationAlwaysUsageDescription

    //NSLocationWhenInUseUsageDescription

     

    @interface ViewController ()<CLLocationManagerDelegate>

     

    @property (nonatomic,strong)CLLocationManager *locationManager;

     

    @end

     

    @implementation ViewController

     

     

    - (void)viewDidLoad {

        [super viewDidLoad];

        

        //初始化locationManger管理器对象

        CLLocationManager *locationManager=[[CLLocationManager alloc]init];

        self.locationManager=locationManager;

        

        //判断当前设备定位服务是否打开

        if (![CLLocationManager locationServicesEnabled]) {

            NSLog(@"设备尚未打开定位服务");

        }

     

        //判断当前设备版本大于iOS8以后的话执行里面的方法

        if ([UIDevice currentDevice].systemVersion.floatValue >=8.0) {

            //持续授权

            [locationManager requestAlwaysAuthorization];

            //当用户使用的时候授权

            [locationManager requestWhenInUseAuthorization];

        }

        

        //或者使用这种方式,判断是否存在这个方法,如果存在就执行,没有的话就忽略

        //if([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]){

        //   [locationManager requestWhenInUseAuthorization];

        //}

        

        //设置代理

        locationManager.delegate=self;

        //设置定位的精度

        locationManager.desiredAccuracy=kCLLocationAccuracyBest;

        //设置定位的频率,这里我们设置精度为10,也就是10米定位一次

        CLLocationDistance distance=10;

        //给精度赋值

        locationManager.distanceFilter=distance;

        //开始启动定位

        [locationManager startUpdatingLocation];

     

    }

    //当位置发生改变的时候调用(上面我们设置的是10,也就是当位置发生>10米的时候该代理方法就会调用)

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

        //取出第一个位置

        CLLocation *location=[locations firstObject];

        NSLog(@"%@",location.timestamp);

        //位置坐标

        CLLocationCoordinate2D coordinate=location.coordinate;

        NSLog(@"您的当前位置:经度:%f,纬度:%f,海拔:%f,航向:%f,速度:%f",coordinate.longitude,coordinate.latitude,location.altitude,location.course,location.speed);

        //如果不需要实时定位,使用完即使关闭定位服务

        //[_locationManager stopUpdatingLocation];

    }

     

    - (void)didReceiveMemoryWarning {

        [super didReceiveMemoryWarning];

        // Dispose of any resources that can be recreated.

    }

     

    @end

  • 相关阅读:
    写代码随想
    学生管理系统
    自定义栈
    位运算符加密
    自定义Vector
    二叉树排序
    双向循环链表
    双向链表
    加载properties文件
    通讯录
  • 原文地址:https://www.cnblogs.com/daxueshan/p/6023506.html
Copyright © 2020-2023  润新知