iOS开发-地图02-指南针

#import "ViewController.h"  
#import <CoreLocation/CoreLocation.h>  
  
@interface ViewController ()<CLLocationManagerDelegate>  
  
@property (nonatomic, strong) CLLocationManager *manager;  
@property (nonatomic, strong) UIImageView *imageView;  
  
@end  
  
@implementation ViewController  
  
- (void)viewDidLoad {  
    [super viewDidLoad];  
    // Do any additional setup after loading the view, typically from a nib.  
      
    self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg_imageView"]];  
    self.imageView.center = self.view.center;  
    [self.view addSubview:self.imageView];  
      
    // 指南针需要在设备上才可以测试 在模拟器无法测试  
    self.manager.delegate = self;  
    // 获取方向不需要授权  
    [self.manager startUpdatingHeading];  
      
    // 区域检测需要位置所以对于iOS8需要请求权限  
    [self.manager requestAlwaysAuthorization];  
      
      
    // 121.551331,38.889706  
    CLLocationCoordinate2D center = CLLocationCoordinate2DMake(38.889706, 121.551331);  
    CLCircularRegion *region = [[CLCircularRegion alloc] initWithCenter:center radius:500 identifier:@"数码广场"];  
      
    [self.manager startMonitoringForRegion:region];  
      
}  
  
/** 
 *  进入区域 
 * 
 *  @param manager 触发事件的对象 
 *  @param region  进入哪个区域 
 */  
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region {  
    NSLog(@"进入 %@", region.identifier);  
}  
  
/** 
 *  退出区域 
 * 
 *  @param manager 触发事件的对象 
 *  @param region  退出哪个区域 
 */  
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region {  
    NSLog(@"退出 %@", region.identifier);  
}  
  
/** 
 *  获取用户的方向 
 * 
 *  @param manager    触发事件的对象 
 *  @param newHeading 获取到的方向信息 
 */  
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {  
//    获取到的为与磁北或者真北的夹角  
//    获取到的磁北的角度 magneticHeading  
//    获取到的真北的角度 trueHeading  
    NSLog(@"%.f", newHeading.magneticHeading);  
    [manager stopUpdatingHeading];  
}  
  
- (CLLocationManager *)manager {  
    if (_manager == nil) {  
        _manager = [[CLLocationManager alloc] init];  
    }  
    return _manager;  
}  
  
- (void)didReceiveMemoryWarning {  
    [super didReceiveMemoryWarning];  
    // Dispose of any resources that can be recreated.  
}  
  
@end 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容