1.方向
-(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(@"離開監聽區域時調用");
}