101 方向和区域监测
2015-11-05 17:05
387 查看
1.方向
2.区域监测:需要定位
进入和离开该区域会调用以下代理方法:
-(void)viewDidLoad{ [super viewDidLoad]; _mgr = [[CLLocationManager alloc]init]; _mgr.delegate = self; // 注意:获取用户的方向信息是不需要用户授权的 [_mgr startUpdatingHeading]; } -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ CGFloat angle = newHeading.magneticHeading * M_PI / 180; /* magneticHeading 设备与磁北的相对角度 trueHeading 设置与真北的相对角度, 必须和定位一起使用, iOS需要设置的位置来计算真北 真北始终指向地理北极点 */ NSLog(@"------%f",angle); }
2.区域监测:需要定位
-(void)viewDidLoad{ [super viewDidLoad]; _mgr = [[CLLocationManager alloc]init]; _mgr.delegate = self; // 注意:如果是iOS8, 想进行区域检测, 必须自己主动请求获取用户隐私的权限 if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0 ) { [self.mgr requestAlwaysAuthorization]; } // 开始检测用户所在的区域 // 创建区域 //CLRegion 有两个子类是专门用于指定区域的 //一个可以指定蓝牙的范围/ 一个是可以指定圆形的范围 // 创建中心点 CLLocationCoordinate2D center = CLLocationCoordinate2DMake(40.058501, 116.304171); // c创建圆形区域, 指定区域中心点的经纬度, 以及半径 CLCircularRegion *circular = [[CLCircularRegion alloc] initWithCenter:center radius:500 identifier:@"中国"]; [_mgr startMonitoringForRegion:circular]; }
进入和离开该区域会调用以下代理方法:
// 进入监听区域时调用 - (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { NSLog(@"进入监听区域时调用"); } // 离开监听区域时调用 - (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region { NSLog(@"离开监听区域时调用"); }
相关文章推荐
- 委托知识整理笔记
- Nginx+uWSGI+Django方法部署Django应用1
- kafka java 生产消费demo
- Android---flipper实现图片轮播
- json读取+对象转换+csv读写
- PHP面向对象中类方法的两种类型:1、基本类型
- SQLite数据库简介
- 关于 USB 通信阻抗匹配的问题
- 什么是POP3、SMTP和IMAP?
- 初识 MySQL 5.6 新功能、参数
- 2015年3季度基金持股超流通股30%的个股一览
- mysql中常用的select语句记录
- BAE tornado部署
- 时隔半年再设环境变量。。笑哭了!
- EasyUi之datagird解读
- python基础
- 设置tomcat 开机启动
- 生成支持Bitcode 的Lib
- 每天学一点linux(四)
- Android应用程序签名机制