定位 - CoreLocation - 区域报警
2015-09-21 16:47
281 查看
#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>
@interface ViewController ()<CLLocationManagerDelegate>
/** 定位管理者对象 ***/
@property (nonatomic, strong) CLLocationManager *mgr;
@property (nonatomic, strong) CLCircularRegion *region;
@end
@implementation ViewController
- (CLLocationManager *)mgr{
if (!_mgr) {
_mgr = [[CLLocationManager alloc] init];
}
return _mgr;
}
- (void)viewDidLoad {
[super viewDidLoad];
//1. 设置代理
self.mgr.delegate = self;
// 3. 开始监听用户所在区域
// CLRegion 有两个子类, 用来指定区域
// 指定蓝牙范围: CLBeaconRegion
// 指定圆形范围: CLCircularRegion
// 创建中心点
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(39.915094,116.487775);
// 创建圆形区域, 指定中心点 经纬度以及半径
self.region = [[CLCircularRegion alloc] initWithCenter:center radius:1000 identifier:@"大望路"];
// [注意] 如果是ios8 必须主动请求用户 授权
if(IOS8){
[self.mgr requestAlwaysAuthorization];
}else{
[self.mgr startMonitoringForRegion:self.region];
}
}
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
if (status == kCLAuthorizationStatusNotDetermined) {
LogGreen(@"正在授权");
}else if ((status == kCLAuthorizationStatusAuthorizedAlways) || (status == kCLAuthorizationStatusAuthorizedWhenInUse)){
[self.mgr startMonitoringForRegion:self.region];
}else{
LogGreen(@"授权失败");
}
}
#pragma mark - CLLocationManagerDelegate
/**
* 进入某个监听区域 开始调用
*/
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
LogRed(@" 进入某个监听区域 开始调用");
}
/**
* 离开监听区域开始调用
*/
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
LogRed(@" 超出某个监听区域 开始调用");
}
#import <CoreLocation/CoreLocation.h>
@interface ViewController ()<CLLocationManagerDelegate>
/** 定位管理者对象 ***/
@property (nonatomic, strong) CLLocationManager *mgr;
@property (nonatomic, strong) CLCircularRegion *region;
@end
@implementation ViewController
- (CLLocationManager *)mgr{
if (!_mgr) {
_mgr = [[CLLocationManager alloc] init];
}
return _mgr;
}
- (void)viewDidLoad {
[super viewDidLoad];
//1. 设置代理
self.mgr.delegate = self;
// 3. 开始监听用户所在区域
// CLRegion 有两个子类, 用来指定区域
// 指定蓝牙范围: CLBeaconRegion
// 指定圆形范围: CLCircularRegion
// 创建中心点
CLLocationCoordinate2D center = CLLocationCoordinate2DMake(39.915094,116.487775);
// 创建圆形区域, 指定中心点 经纬度以及半径
self.region = [[CLCircularRegion alloc] initWithCenter:center radius:1000 identifier:@"大望路"];
// [注意] 如果是ios8 必须主动请求用户 授权
if(IOS8){
[self.mgr requestAlwaysAuthorization];
}else{
[self.mgr startMonitoringForRegion:self.region];
}
}
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
if (status == kCLAuthorizationStatusNotDetermined) {
LogGreen(@"正在授权");
}else if ((status == kCLAuthorizationStatusAuthorizedAlways) || (status == kCLAuthorizationStatusAuthorizedWhenInUse)){
[self.mgr startMonitoringForRegion:self.region];
}else{
LogGreen(@"授权失败");
}
}
#pragma mark - CLLocationManagerDelegate
/**
* 进入某个监听区域 开始调用
*/
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
LogRed(@" 进入某个监听区域 开始调用");
}
/**
* 离开监听区域开始调用
*/
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
LogRed(@" 超出某个监听区域 开始调用");
}
相关文章推荐
- PostgreSQL-角色、库、模式、表
- javabean
- 第3周项目4-顺序表应用问题(2)
- ORM对象关系映射之使用GreenDAO进行CRUD操作
- 不同场景下MySQL的迁移方案
- 选择文件对话框
- Centos下安装svn客户端
- ORM对象关系映射之使用GreenDAO进行CRUD操作
- vitamio官方demo源码分析
- php函数引用
- 第三周 项目1——顺序表的基本运算
- 第二周项目2-程序的多文件组织
- 第三周项目2 建立顺序表算法库
- PHP
- OC基础教程10-代码块和并发性
- 第二周,项目三
- libcurl上传文件 post from表单、post二进制的区别
- Freebsd利用crontab定时关机
- 代理设计模式(proxy)
- 不要用return 返回指向栈内存的指针