- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iOS地图定位(定位、地理编码与反地理编码、mapView、大头针、导航)
在我们的生活中现在很多App大多都可以获取地理位置进行相关的定位标记等,有的例如餐饮App,当我们需要订餐时,我们需要知道商家的地理位置,以方便我们能够知道送餐人员大概需要多久可以将食物送到我们面前,当我们需要查找某个餐厅的时候,我们只需要在搜索框中搜索相应的店名,我们的App就能迅速的在地图上帮我们标注出来,以方便我们查看,当我们需要去一个陌生的地方的时候,我们可以很轻松的通过导航功能,去往我们想要去得任何地方,而这些都得益于苹果为我们提供的定位服务。
首先要实现地图、导航功能,就需要我们先熟悉定位功能,在iOS中通过Core Location框架进行定位操作。Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图开发要配合定位框架使用。在Core Location中主要包含了定位、地理编码(包括反编码)功能。
由于目前苹果iOS系统最新版本为9.1,苹果自iOS8以后如果要使用定位服务,需要我们在plist文件中多添加两个字段,其实就是提示用户授权的用的,就是以下两个字段:
NSLocationWhenInUseUsageDescription 当用户使用的允许
NSLocationAlwaysUsageDescription 总是允许
定位服务授权状态枚举类型说明:
//定位服务授权状态,返回枚举类型:
//kCLAuthorizationStatusNotDetermined: 用户尚未做出决定是否启用定位服务
//kCLAuthorizationStatusRestricted: 没有获得用户授权使用定位服务,可能用户没有自己禁止访问授权
//kCLAuthorizationStatusDenied :用户已经明确禁止应用使用定位服务或者当前系统定位服务处于关闭状态
//kCLAuthorizationStatusAuthorizedAlways: 应用获得授权可以一直使用定位服务,即使应用不在使用状态
//kCLAuthorizationStatusAuthorizedWhenInUse: 使用此应用过程中允许访问定位服务
获取当前位置
ViewController.m
#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>
@interface ViewController ()<CLLocationManagerDelegate>
@property (nonatomic,strong)CLLocationManager *locationManager;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//初始化locationManger管理器对象
CLLocationManager *locationManager=[[CLLocationManager alloc]init];
self.locationManager=locationManager;
//判断当前设备定位服务是否打开
if (![CLLocationManager locationServicesEnabled]) {
NSLog(@"设备尚未打开定位服务");
}
//判断当前设备版本大于iOS8以后的话执行里面的方法
if ([UIDevice currentDevice].systemVersion.floatValue >=8.0) {
//持续授权
[locationManager requestAlwaysAuthorization];
//当用户使用的时候授权
[locationManager requestWhenInUseAuthorization];
}
//或者使用这种方式,判断是否存在这个方法,如果存在就执行,没有的话就忽略
//if([locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]){
// [locationManager requestWhenInUseAuthorization];
//}
您可能关注的文档
- 叶菜类种子生产技术 杂交种子生产 杂交种子生产.docx
- 叶菜类种子生产技术 种株的繁育与管理 种株的繁育与管理.docx
- 一带一路与国际化(一带一路) 大数据解读一带一路 “一带一路”数据观丨“一带一路”的2017.docx
- 医学影像设备构造与维修 电子教材 医用数字胃肠X射线机.docx
- 医学影像设备构造与维修 自编实训教材 CPI200 发生器部分.doc
- 医院静脉配置技术 课程导学 《 医院静脉配置技术》课程教学规范.docx
- 移动商务视觉设计2 综合设计 课程实训设计--商品拍摄.docx
- 移动商务文案写作 4.8.2实训:微信公众号内容撰写 4.8.2实训素材:主题背景素材.docx
- 移动通信接入网运行与维护 IUCS接口与协议栈-控制面 实验四 RNC IU-CS接口控制面数据配置(仿真环境).docx
- 移动通信接入网运行与维护 IUPS接口与协议栈-控制面 实验六 RNC IU-PS接口控制面数据配置(仿真环境).docx
文档评论(0)