地图与定位

地图与定位标签(空格分隔): UI补充地图与定位在移动互联网时代我们可以去依靠手机上的地图导航区陌生的地方,也可用利用团购的app搜索最近的找餐馆、找酒店、找银行、找电影院……。 - LBS :Location Based Service - SoLoMo :Social Local Mobile(索罗门) 上面的功能都都用到了地图和定位功能,在iOS开发中,要想加入这2大功能
摘要由CSDN通过智能技术生成

地图与定位

标签(空格分隔): UI补充


地图与定位

在移动互联网时代我们可以去依靠手机上的地图导航区陌生的地方,也可用利用团购的app搜索最近的找餐馆、找酒店、找银行、找电影院……。
- LBS :Location Based Service
- SoLoMo :Social Local Mobile(索罗门)
上面的功能都都用到了地图和定位功能,在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发
- Map Kit :用于地图展示
- Core Location :用于地理定位

Core Location的基本使用

  • 从iOS 6开始,苹果在保护用户隐私方面做了很大的加强,以下操作都必须经过用户批准授权
    • 获得用户的位置
    • 访问用户的通讯录、日历、相机、相册等等
  • 当想访问用户的隐私信息时,系统会自动弹出一个对话框让用户授权

    一旦用户选择了“Don’t Allow”,意味着你的应用以后就无法使用定位功能

  • 开发者可以在Info.plist中设置NSLocationUsageDescription说明定位的目的

简单使用

  • 导入框架

  • 导入主头文件
    #import <CoreLocation/CoreLocation.h>

    • CoreLocation框架使用须知
      • CoreLocation框架中所有数据类型的前缀都是CL
      • CoreLocation中使用CLLocationManager对象来做用户定位
CLLocationManager
  • CLLocationManager的常用操作

    • 开始用户定位
      - (void)startUpdatingLocation;

    • 停止用户定位
      - (void) stopUpdatingLocation;

    • 当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法
      - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;

    • 每隔多少米定位一次
      @property(assign, nonatomic) CLLocationDistance distanceFilter;

    • 定位精确度(越精确就越耗电)
      @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy;

- (void)viewDidLoad {
    [super viewDidLoad];

    // 1.获取用户的授权状态(iOS7只要使用到定位,就会直接请求授权)
    CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
    if (status == kCLAuthorizationStatusNotDetermined) {

        if ([self.mgr respondsToSelector:@selector(requestAlwaysAuthorization)]) {
            [self.mgr requestAlwaysAuthorization];
        }
    }
    // 2.开始定位(当调用该方法,系统就会不停的更新用户的位置)
    [self.mgr startUpdatingLocation];
}

#pragma mark - 懒加载
- (CLLocationManager *)mgr
{
    if (_mgr == nil) {
        self.mgr = [[CLLocationManager alloc] init];

        // 设置代理,在代理方法中可以拿到用户的位置
        self.mgr.delegate = self;

        // 设置定位的精度(精度越高越耗电)
        self.mgr.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

        // 设置当用户移动的时候,重新来定位
        self.mgr.distanceFilter = 10.0;
    }
    return _mgr;
}
CLLocation
  • CLLocation用来表示某个位置的地理信息,比如经纬度、海拔等等
    @property(readonly, nonatomic) CLLocatio

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值