文档章节

定位模块CoreLocation使用

lavzchen
 lavzchen
发布于 2015/05/20 13:57
字数 353
阅读 23
收藏 0

IOS中定位的API封装在CoreLocation中,要使用定位功能需要在代码中导入<CoreLocation/CoreLocation.h>,IOS8.0以后还需要对定位的管理类CLLcationManager进行注册。首先需要在功能的配置里添加NSLocationWhenInUseDescription(仅在使用是开启)/NSLocationAlwaysUsageDescription(总是开启)

使用

localManager = [[CLLocationManager alloc] init];
localManager.delegate = self;
localManager.desiredAccuracy = kCLLocationAccuracyBest;
localManager.distanceFilter = 100; //每隔100米更新
    
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
   // 注册定位功能, 与配置文件一致
   [localManager requestWhenInUseAuthorization];
   //[localManager requestAlwaysAuthorization]
}
// 开始测位
[localManager startUpdatingLocation];

回调处理:

// 注册定位结果回调
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
    switch (status) {
        case kCLAuthorizationStatusNotDetermined:
            if ([localManager respondsToSelector:@selector(requestWhenInUseAuthorization)])
            {
                [localManager requestWhenInUseAuthorization];
            }
            break;
        default:
            break;
            
            
    } 
}

//协议中的方法,作用是每当位置发生更新时会调用的委托方法
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    //结构体,存储位置坐标
    CLLocationCoordinate2D loc = [newLocation coordinate];
    // 经度
    float longitude = loc.longitude;
    // 纬度
    float latitude = loc.latitude;
    // 楼层
    NSInteger level = [newLocation.floor level];
    // 水平位置
    double altitude = [newLocation altitude];
    // 与正北的角度
    double course = [newLocation course];
    // 移动速度
    double speed = [newLocation speed];
    // 描述, 包含可列举的所有信息
    NSString *description = [newLocation description];
    // 当前位置距离上一测位点的距离
    double distance = [newLocation distanceFromLocation:oldLocation];
}

//当位置获取或更新失败会调用的方法
-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
    NSString *errorMsg = nil;
    if ([error code] == kCLErrorDenied) {
        errorMsg = @"访问被拒绝";
    }
    if ([error code] == kCLErrorLocationUnknown) {
        errorMsg = @"获取位置信息失败";
    }
    
    NSLog(errorMsg);
}

© 著作权归作者所有

lavzchen
粉丝 2
博文 33
码字总数 5049
作品 0
常州
私信 提问
疯狂ios讲义之使用CoreLocation定位(5)

9.5 本章小结 本章主要介绍了使用CoreLocation框架定位相关知识。本章知识涉及如何使用CoreLocation获取设备的经度、纬度、高度等位置信息,以及如何使用CoreLocation获取设备的移动速度,还...

博文视点
2014/04/04
169
0
iOS8中使用CoreLocation定位

在iOS8中,苹果已经强制开发者在请求定位服务时获得用户的授权,此外iOS状态栏中还有指示图标,提示用户当前应用是否正在使用定位服务。另外在iOS8中,苹果进一步改善了定位服务,让开发者请...

Im刘亚芳
2014/12/07
0
0
iOS开发之CoreLocation(GPS定位)

1、概述 在iOS开发中,要想加入地图和定位功能这2大功能,必须基于2个框架进行开发 (1)Map Kit :用于地图展示 (2)Core Location :用于地理定位 2个热门专业术语: LBS :Location Base...

feng_blog
2015/08/31
0
0
CoreLocation定位

1 CoreLocation的基础使用 1>iOS7 1.创建CoreLocation的管理者。CoreLocation要强引用 2.实现CLLocationManagerDelegate代理。 3.开始或停止代理 #import <CoreLocation/CoreLocation.h>@in......

Ethan-GOGO
2015/09/20
201
0
iOS开发之CoreLocation框架使用

iOS开发之CoreLocation框架使用 CoreLocation框架是iOS开发中比较基础的一个位置信息相关框架,关于定位和地图,之前也有博客多详细的介绍。但是对于CoreLocation框架,并没有完整和细致的记...

珲少
2018/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

揭秘阿里云背后神秘而富有能量的一群人

作为某创业公司CTO兼CTO兼CFO,带领众子弟行走于云端计算,累计犒赏已达757157.09银两,江湖人称紫龙,就是众多阿里云大使中低调内敛的一位。其话不多,一个典型的技术男,但又热心钻研传播推...

阿里云云栖社区
24分钟前
1
0
深入浅出Mybatis系列(一)---Mybatis源码分析环境准备

Mybatis源码分析环境准备 源码下载地址: https://blog.mybatis.org/p/products.html 把下载好多源码导入idea 之后可以在Test包下进行源码分析 这里我们就把源码分析的环境准备好了,下一篇文...

须臾之余
40分钟前
0
0
使用JDK的观察者接口进行消息推送

观察者模式就是对对象内部的变化进行观察,当发生改变时做出相应的响应。代码样例见 设计模式整理 ! 因为观察者模式较为重要,使用频率较高,JDK早已经提供了内置的观察者接口以及被观察者父...

算法之名
48分钟前
16
0
supervisor的配置与laravel php artisan queue:work的配置

安装环境 centos 7.2 安装supervisor easy_install supervisor echo_supervisord_conf > /etc/supervisord.conf 配置supervisor 如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20......

bengozhong
54分钟前
2
0
DevExpress Winforms Controls:安装使用系统要求文档

【DevExpress WinForms v19.1下载】 本文档包含了有关安装和使用DevExpress WinForms控件的系统要求信息。 .NET Framework 下图展示了支持的.NET Framework版本。 Microsoft已发布.NET Fram...

FILA6666
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部