zoukankan      html  css  js  c++  java
  • iOS 简单获取当前地理坐标

      iOS 获取当前地理坐标

           iOS获取当前地理坐标,很简单几句代码,但是如果刚开始不懂,做起来也会也会出现一些问题。

    1、导入定位需要用到的库:CoreLocation.framwork 。如果要显示地图,就要导入 MapKit.framwork 。

    2、在info.plist里加入两行 

                NSLocationWhenInUseUsageDescription  当应用需要时候定位 

                NSLocationAlwaysUsageDescription   始终使用地位(这行如果不加,那么启动的时候就不会弹出允许使用定位提示框,只能手动设置允许)。

                  

    3、导入类库  #import <CoreLocation/CoreLocation.h>, 添加代理 CLLocationManagerDelegate 。基本设置好了就可以直接代码实现了。

    4、定义一个对象,做一些设置。

    self.locationManager = [[CLLocationManager alloc] init];
        // 设置定位精度,十米,百米,最好
        self.locationManager.desiredAccuracy=kCLLocationAccuracyBest;
        //每隔多少米定位一次(这里的设置为任何的移动)
        self.locationManager.distanceFilter = kCLDistanceFilterNone;
        self.locationManager.delegate = self; //代理设置
        
        // 开始时时定位
        if ([CLLocationManager locationServicesEnabled])
        {
            // 开启位置更新需要与服务器进行轮询所以会比较耗电,在不需要时用stopUpdatingLocation方法关闭;
            [self.locationManager startUpdatingLocation];
        }else
        {
            NSLog(@"请开启定位功能");
        }

    5、代理方法实现

    //开启定位后会先调用此方法,判断有没有权限
    -(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
    {
        if ([CLLocationManager authorizationStatus]==kCLAuthorizationStatusNotDetermined)
        {

           //判断ios8 权限

            if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])

            {

                [self.locationManager requestAlwaysAuthorization]; // 永久授权

                [self.locationManager requestWhenInUseAuthorization]; //使用中授权

            }

        }else if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusAuthorizedWhenInUse)
        {
            [self.locationManager startUpdatingLocation];
        }
    }

    6、获取定位坐标

    //成功获取到经纬度
    - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
    {
        // 获取经纬度
        NSLog(@"纬度:%f",newLocation.coordinate.latitude);
        NSLog(@"经度:%f",newLocation.coordinate.longitude);
        // 停止位置更新
        [manager stopUpdatingLocation];
    }
    
    // 定位失败错误信息
    -(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
    {
        NSLog(@"error");
    }

     完成:

          这就是一个简单的地理坐标获取,如果要使用更多功能、路线、距离、大头针、地理编码换算等可以下载使用高德或百度的SDK,里面都头很详细的说明,和简单的方法调用!

  • 相关阅读:
    ES6 -- (1) 简介、let、块级作用域、const、顶层对象的属性、globalThis对象
    TS -- (5)声明合并、代码检查
    TS -- (4)类、类与接口、泛型
    TS -- (3)声明文件、内置对象、类型别名、字符串字面量类型、元组、枚举
    TS -- (2)接口、数组的类型、函数的类型
    TS -- (1)环境,快速入门,基础类型,类型断言、变量声明、解构、展开
    css的三定位方式的区别
    Array循环
    scroll操作
    【Nodejs】记一次图像识别的冒险
  • 原文地址:https://www.cnblogs.com/qq95230/p/4960003.html
Copyright © 2011-2022 走看看