标签:
学习目标:
—定位功能
—地理编码
—用户位置跟中
—大头针
在IOS开发中,要加入定位和地图 必须导入2个框架进行开发。
map kit:用于地图展示
core Location:用于地理定位
要实现地图、导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位 操作。Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,
但是往往地图开发要配合定位框架使用。在Core Location中主要包含了定位、地理编码(包括反编码)功能。
实现定位
#import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController ()<CLLocationManagerDelegate> @property (nonatomic, strong)CLLocationManager *manager; @end @implementation ViewController //使用定位之前 先导入CoreLocation.framework框架 在相应的类中导入CoreLocation/CoreLocation.h - (void)viewDidLoad { [super viewDidLoad]; //判断服务器是否打开 BOOL isOpen = [CLLocationManager locationServicesEnabled]; if (isOpen) { NSLog(@"定位服务打开"); }else{ NSLog(@"亲,您手机定位服务没打开"); } //判断认证状态 /* 1.用户没有做出任何判断 kCLAuthorizationStatusNotDetermined = 0, 2.用户禁用位置服务信息 kCLAuthorizationStatusDenied = 2 3.在后台访问位置服务 kCLAuthorizationStatusAuthorizedAlways = 3 NS_ENUM_AVAILABLE(NA, 8_0)——————此枚举值是在iOS8.0之后添加上的,就是iOS7,6,...没有这个枚举值, 4.在前台访问位置服务 kCLAuthorizationStatusAuthorizedWhenInUse = 4 */ //获取认证状态 NSInteger stuatus = [CLLocationManager authorizationStatus]; NSLog(@"%ld",stuatus); switch (stuatus) { case 0: NSLog(@"kCLAuthorizationStatusNotDetermined--没有决定"); break; case 1: NSLog(@"kCLAuthorizationStatusRestricted--没有许可"); break; case 2: NSLog(@"kCLAuthorizationStatusDenied--禁止使用"); break; case 3: NSLog(@"kCLAuthorizationStatusAuthorizedAlways--始终允许"); break; case 4: NSLog(@"kCLAuthorizationStatusAuthorizedWhenInUse--开启允许"); break; default: break; } //3.请求app访问手机的定位服务 // 3.1 修改plist文件 //NSLocationAlwaysUsageDescription---我想在后台还访问您的位置 //NSLocationWhenInUseUsageDescription---我想在我的app开启的时候使用您的位置,可以吗? _manager = [[CLLocationManager alloc]init]; _manager.delegate = self; float version = [[[UIDevice currentDevice] systemVersion] floatValue]; NSLog(@"%f %@",version,[[UIDevice currentDevice] systemName]); if (version >= 8.0) { [_manager requestAlwaysAuthorization]; } } // 用户许可状态改变的时候调用此方法 - (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status { NSLog(@"认证状态改变"); } @end
标签:
原文地址:http://www.cnblogs.com/ahoy/p/4904755.html