#import "ViewController.h"

#import <CoreLocation/CoreLocation.h>

@interface ViewController ()<CLLocationManagerDelegate>

// 定位管理对象

@property (nonatomic, strong) CLLocationManager *mgr;

// 指南针

@property (nonatomic, strong) UIImageView *compass;

@end

@implementation ViewController

- (CLLocationManager *)mgr{

if (!_mgr) {

_mgr = [[CLLocationManager alloc] init];

}

return _mgr;

}

- (void)viewDidLoad {

[super viewDidLoad];

// 1. 添加指南针

UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_compasspointer"]];

iv.center = CGPointMake(self.view.center.x, self.view.center.y);

[self.view addSubview:iv];

self.compass = iv;

// 2. 成为代理

self.mgr.delegate = self;

// 3. 开始监听

// 开始获取用户方向  --- 不需要授权

//    [self.mgr startUpdatingHeading];

}

// 授权状态改变调用这个方法

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

{

if (status == kCLAuthorizationStatusNotDetermined) {

LogYellow(@"正在授权");

}else if ((status == kCLAuthorizationStatusAuthorizedAlways) || (status == kCLAuthorizationStatusAuthorizedWhenInUse)){

[self.mgr startUpdatingHeading];

}else{

LogYellow(@"授权失败");

}

}

#pragma mark - CLLocationManagerDelegate

// 当获取到用的的方向时, 就会调用

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

{

/**

magneticHeading 设备与磁北的相对角度

trueHeading 设置与真北的相对角度, 必须和定位一起使用, iOS需要设置的位置来计算真北

真北始终指向地理北极点

磁北对应随着时间变化的地球磁场北极

*/

LogRed(@"%f",newHeading.magneticHeading);

// 1.角度转换成弧度

CGFloat angle = newHeading.magneticHeading * M_PI/ 180.0;

// 2.旋转图片

/**

*  顺时针: 正数

*  逆时针: 负数

*/

//    self.compass.transform = CGAffineTransformIdentity;

self.compass.transform = CGAffineTransformMakeRotation(-angle);

}

定位 - CoreLocation - 指南针的更多相关文章

  1. 定位CoreLocation

    一.定位 iOS三种定位方式: CoreLocation 按定位的准确性: GPS(Global Positioning System全球定位系统); 蜂窝式基站; wifi; 定位顺序:1. 首选G ...

  2. AJ学IOS 之CoreLocation指南针小应用

    AJ分享,必须精品 一:效果图示 简单的用到CoreLocation获取方位做的指南针小应用 二:制作思路 具体用到了CoreLocation相关的知识,请看上一篇博客有写 然后获取方向不需要进行授权 ...

  3. iOS开发——高级篇——地理定位 CoreLocation

    一.CoreLocation 在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆.找KTV.找电影院等等导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达 在上述应用 ...

  4. 定位 - CoreLocation - 区域报警

    #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewCont ...

  5. 定位 - CoreLocation - 打印位置信息

    1. 导入框架 <CoreLocation.framework>, 引入头文件 import <CoreLocation/CoreLocation.h>; 2. 创建管理者对象 ...

  6. 地图定位CoreLocation框架,地理位置编码与反编码

    在现代互联网时代,越来越多的应用,都用到了地图定位功能,在iOS开发中,想要加入这种功能,必须基于两个框架进行开发: 1.Map Kit:用于显示地图, 2.CoreLocation:用于显示地理位置 ...

  7. iOS学习笔记19-地图(一)定位CoreLocation

    一.定位介绍 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.要实现 ...

  8. iOS定位--CoreLocation框架

    CoreLocation框架的使用 // 首先导入头文件 #import <CoreLocation/CoreLocation.h> CoreLocation框架中所有数据类型的前缀都是C ...

  9. iOS定位--CoreLocation

    一:导入框架 #import <CoreLocation/CoreLocation.h> 二:设置代理及属性 <CLLocationManagerDelegate> @prop ...

随机推荐

  1. oracle pde文件导入

    pde使用pl/sql developer的tools->import tables->pl/sql developer来导入

  2. 如何运用管理员身份运行cmd窗口?

    所有程序 → 附件 → 命令行提示符 → 鼠标右键“以管理员身份运行”.

  3. keystone系列二:keystone源码分析

    六 keystone架构 6.1 Keystone API Keystone API与Openstack其他服务的API类似,也是基于ReSTFul HTTP实现的. Keystone API划分为A ...

  4. Magento网站如何添加一个可配置产品

    有的产品,比如服装,同一件衣服有S.M.L.XL.XXL等尺码供客户选择,或者有多种颜色可以供客户选择,Magento中管这种有选项供客户选择的产品叫做可配置产品 (Configurable Prod ...

  5. JavaScript入门(6)

    一.if语句 if语句是基于条件成立才执行相应代码时使用的语句 语法: if(条件) {条件成立时执行代码} 注: if小写,大写字母IF会出错! 二.if...else语句(二选一) 语法: if( ...

  6. 如何在eclipse使用StaggeredGridView

    概述  现在的开发工具基本都用AndroidStudio了.网上的开源框架也是.比如做瀑布式UI的StaggeredGridView,还有导航页的PagerSlidingTabStrip等. 那么电脑 ...

  7. 将文件的编码格式转换为utf-8

    背景:项目中有一些其他部门发过来的代码,编码格式有utf-8,也有GBK,而且是散乱在各个文件夹中的,处理起来十分的麻烦.我想把他们都转成统一的utf-8的格式.代码很简单,直接上代码好了. impo ...

  8. c语言指针字符串与字符数组字符串的区别

    #include <stdio.h> int main() { //字符串常量,存放于内存常量区. //常量区区的内存具有缓存机制, //当不同指针指向的常量值相同时, //其实这些指针指 ...

  9. sublime_text编辑器下载安装使用

    1.sublime_text下载 https://www.sublimetext.com/3   (选择相对应的版本) 2.通过package control安装插件 https://packagec ...

  10. UVA 10881 Piotr's Ants(等效变换 sort结构体排序)

    Piotr's AntsTime Limit: 2 seconds Piotr likes playing with ants. He has n of them on a horizontal po ...