zoukankan      html  css  js  c++  java
  • [iPhone硬件]-GPS定位的使用

    iPhone中GPS定位如何使用

    关键词

    1.info.plist配置授权描述
    2.引入库
    3.CLLocationManager的使用

    info.plist配置

    在info.plist中根据情况加入以下两个string类型配置项,并填写描述

    1.NSLocationAlwaysUsageDescription
    2.NSLocationWhenInUseUsageDescription

    引入库

    -引入CoreLocation.framework
    -在原文件中引入 <CoreLocation/CoreLocation.h>

    代码实现

    
    // 初始化
    
    2.- (void)setupLocationManager {
    
    3.    _locationManager = [[CLLocationManager alloc] init];
    
    4.    _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    
    5.    _locationManager.distanceFilter = kCLDistanceFilterNone;
    
    6.
    7.    if ([_locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
    
    8.        [_locationManager requestWhenInUseAuthorization];
    
    9.    }
    
    10.}
    
    11.
    12.// 调用此方法开始定位
    
    13.- (void) startUpdatingLocation {
    
    14.    if ([CLLocationManager locationServicesEnabled]) {
    
    15.        _shouldHandleLocation = YES;
    
    16.        _locationManager.delegate = self;
    
    17.        [_locationManager startUpdatingLocation];
    
    18.    } else {
    
    19.        [SVProgressHUD showErrorWithStatus:@"请开启定位功能!"];
    
    20.    }
    
    21.}
    
    22.
    23.#pragma mark - CLLocationManagerDelegate
    
    24.- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
    
    25.{
    
    26.    CLLocation *newLocation = [locations lastObject];
    
    27.    if (_shouldHandleLocation) {
    
    28.        _shouldHandleLocation = NO;
    
    29.        _latitude = newLocation.coordinate.latitude;
    
    30.        _longitude = newLocation.coordinate.longitude;
    
    31.
    32.        [self commitCheckinInfo];
    
    33.    }
    
    34.
    35.    _locationManager.delegate = nil;
    
    36.    [_locationManager stopUpdatingLocation];
    
    37.}
    
    38.
    39.- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
    
    40.{
    
    41.    [SVProgressHUD showErrorWithStatus:@"定位失败!"];
    
    42.    _locationManager.delegate = nil;
    
    43.    [manager stopUpdatingLocation];
    
    44.}
    
    
  • 相关阅读:
    虚函数表
    写出float x 与“零值”比较的if语句
    系统表的构成
    UEFI的inf文件构成
    最短路径算法
    EDK2与EDK2工具链关系图
    GIT提交本地文件
    docker学习笔记-04:docker容器数据卷
    docker学习笔记-03:docker的镜像原理
    docker学习笔记-02:docker常用命令
  • 原文地址:https://www.cnblogs.com/hellovoidworld/p/5176050.html
Copyright © 2011-2022 走看看