1. 导入框架 <CoreLocation.framework>, 引入头文件 import <CoreLocation/CoreLocation.h>;

2. 创建管理者对象 (strong)

#import "ViewController.h"

@interface ViewController ()<CLLocationManagerDelegate>

/**  定位管理者 ***/

@property (nonatomic, strong) CLLocationManager *mgr;

@end

@implementation ViewController

/**  懒加载 ***/

- (CLLocationManager *)mgr{

if (!_mgr) {

_mgr = [[CLLocationManager alloc] init];

}

return _mgr;

}

- (void)viewDidLoad {

[super viewDidLoad];

// 1. 创建CoreLocation管理者

// 2. 成为CoreLocaltion管理者的代理, 监听获取的位置

self.mgr.delegate = self;

// 3. 设置属性

// 设置多久 获取一次位置

//    self.mgr.distanceFilter = 500;

/**

kCLLocationAccuracyBestForNavigation -- 最佳导航

kCLLocationAccuracyBest;             -- 最精准

kCLLocationAccuracyNearestTenMeters; -- 十米

kCLLocationAccuracyHundredMeters;    -- 百米

kCLLocationAccuracyKilometer;        -- 千米

kCLLocationAccuracyThreeKilometers;  -- 三千米

*/

// 设置定位精确度

self.mgr.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

/**

*  ios7 , 只要开始定位, 系统就会自动要求用户对你的应用程序授权. 但是从ios8开始, 想要定位自己必须主动要求用户授权,而且必须再info.plist文件中配置一项属性, 才能弹出授权窗口.

NSLocationWhenInUseDescription,允许在前台获取GPS的描述

NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述

*/

// 4. 请求授权定位

if(IOS8){

LogRed(@"ios 8");

// 主动要求用户授权, 授权成功以后会调用对应的代理方法.

[self.mgr requestAlwaysAuthorization]; // 请求前台和后台定位权限

//        [self.mgr requestWhenInUseAuthorization]; // 请求前台定位权限

}else{

LogMagenta(@"ios 7");

// 3. 开始监听

[self.mgr startUpdatingLocation];

}

}

/**

*  当授权状态改变时, 调用此方法

*

*  @param manager 触发事件的对象

*  @param status  授权状态

*/

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status

{

//

//    kCLAuthorizationStatusNotDetermined   ---- 等待授权

//    kCLAuthorizationStatusRestricted,     ---- 受限 -- 未授权

//    kCLAuthorizationStatusDenied          ---- 拒绝授权

//    kCLAuthorizationStatusAuthorizedAlways --- 前台 后台都授权

//    kCLAuthorizationStatusAuthorizedWhenInUse - 前台授权

if (status == kCLAuthorizationStatusNotDetermined) {

LogWhite(@"等待用户授权");

}else if (status == kCLAuthorizationStatusAuthorizedAlways ||

status == kCLAuthorizationStatusAuthorizedWhenInUse)

{

LogRed(@"授权成功");

// 开始定位

[self.mgr startUpdatingLocation];

}else

{

LogGreen(@"授权失败");

}

}

#pragma mark - CLLocationManagerDelegate

/**

*  获取到位置信息后就会调用

*

*  @param manager   触发事件的对象

*  @param locations 获取到的位置

*/

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

{

/**

*  // CLLocation

location.coordinate; 坐标, 包含经纬度

location.altitude; 设备海拔高度 单位是米

location.course; 设置前进方向 0表示北 90东 180南 270西

location.horizontalAccuracy; 水平精准度

location.verticalAccuracy; 垂直精准度

location.timestamp; 定位信息返回的时间

location.speed; 设备移动速度 单位是米/秒, 适用于行车速度而不太适用于不行

*/

LogRed(@"%@",locations);

// 1. 获取最后一次定位的位置信息

CLLocation *location = [locations lastObject];

LogYellow(@"%f --- %f ---%f",location.coordinate.latitude,location.coordinate.longitude,location.speed);

//    [self.mgr stopUpdatingLocation];

}

定位 - CoreLocation - 打印位置信息的更多相关文章

  1. android GPS 定位,取位置信息

    现在很多app ,需要取位置信息,所以我也做了一个模块用来取位置信息:   加入位置服务所需的权限: <uses-permission android:name="android.pe ...

  2. Android 集成GoogleMap,实现定位和获取位置信息

    1.准备 我使用的是AS2.2.2,首先FQ注册google开发者帐号,准备获取API Key,网上有许多相关资料我就不再赘述,这里讲一个比较小白级的获取方法,可以减少许多输入 1.1. AS创建项目 ...

  3. ios 定位获取当前位置信息

    啊,倦怠的人生啊~~ 什么事情都没做一眨眼就2点半了啊!!赶紧爬起来写博客啊. 诸位看官会鄙视我么,表示我真心不是把这当技术文章写的啊. 啊,下午我们来第二篇.获取地理位置信息.嗯嗯,秘籍上说叫逆向地 ...

  4. IOS CLLocationManager定位反编码位置信息

    //获取位置和坐标#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1        if (IOS_VERSION >= 8.0) {   ...

  5. iOS开发----地图与导航--定位和位置信息获取

    要实现地图.导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作.Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图 ...

  6. iOS项目开发实战——使用CoreLocation获取当前位置信息

    随着基于位置服务LBS和移动互联网的兴起,你的位置是越来越重要的一个信息.位置服务已经是当前的热门应用如微信.陌陌等社交应用的杀手锏.而在iOS开发中,苹果已经给我们提供了一个位置接口.CoreLoc ...

  7. iOS定位和位置信息获取

    要实现地图.导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作.Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图 ...

  8. android黑科技系列——微信定位聊天记录中照片的位置信息插件开发详解

    一.前言 最近关于微信中,朋友之间发送原图就可能暴露你的位置信息,其实这个问题不在于微信,微信是为了更好的体验效果,才有发送原图功能,而对于拍照,发送普通图片微信后台都会过滤图片的exif信息,这样就 ...

  9. HTML5 Geolocation位置信息定位总结

    现在定位功能很常用,所以抽出一些时间将这个功能的知识总结一下作为知识梳理的依据.HTML5 Geolocation的定位用法很简单,首先请求位置信息,用户同意,则返回位置信息.HTML5 Geoloc ...

随机推荐

  1. Java NIO与IO的差别和比較

    导读 J2SE1.4以上版本号中公布了全新的I/O类库.本文将通过一些实例来简介NIO库提供的一些新特性:非堵塞I/O,字符转换,缓冲以及通道. 一. 介绍NIO NIO包(java.nio.*)引入 ...

  2. LoC

    对于图片.Flash等非文本文件统计文件数量.文件大小: 对于文本文件统计文件数量.文本行数.字符数:

  3. 嵌入式Linux-objdump命令的使用

    objdump命令的使用 objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它还有其他作用,下面以ELF格式可执行文件test为例详细介绍: objdump -f test 显示t ...

  4. hdu2565java

    放大的X Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissio ...

  5. android自定义View之钟表诞生记

    很多筒子觉得自定义View是高手的象征,其实不然.大家觉得自定义View难很多情况下可能是因为自定义View涉及到了太多的类和API,把人搞得晕乎乎的,那么今天我们就从最简单的绘图API开始,带大家来 ...

  6. NIO学习:异步IO实例

    工作模式: 客户端代码: package demos.nio.socketChannel; import java.io.ByteArrayOutputStream; import java.io.I ...

  7. 闲话shuffle(洗牌)算法

    工作中经常会用到洗牌算法,看到这篇文章不错,原文摘自:http://www.atatech.org/article/detail/11821/928  作者:子仲   场景 洗牌算法的应用场景其实很多 ...

  8. C++ notes for beginners

    作者:马 岩(Furzoom) (http://www.cnblogs.com/furzoom/)版权声明:本文的版权归作者与博客园共同所有.转载时请在明显地方注明本文的详细链接,未经作者同意请不要删 ...

  9. shell脚本结构示例1

    2013年以来自己因为偷懒,少写了很多东西,今年计划把以前积累的总结出来. 先从shell开始写起吧. 干了快3年游戏运维,期间经常会写一些shell本,不少脚本其实有很多可以复用的部分. 按照自己的 ...

  10. java.sql.SQLException: ORA-28001: the password has expired。

    java.sql.SQLException: ORA-28001: the password has expired. Oracle11g的密码过期. 原因:是由于oracle11g中默认在defau ...