一、LBS(定位)的使用

1、使用框架Core Location

2、CLLocationManager

(1)CoreLocation中使用CLLocationManager对象来做用户定位

(2)CLLocationManager的常用操作

  <1>开始用户定位

  - (void)startUpdatingLocation;

  <2>停止用户定位

  - (void) stopUpdatingLocation;

  <3>当调用了startUpdatingLocation方法后,就开始不断地定位用户的位置,中途会频繁地调用代理的下面方法

  - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;

  locations参数里面装着CLLocation对象

  <4> 判断当前定位是否可用,最好在使用前判断

  +locationServicesEnabled

(3)定位的精确度

  <1>@property(assign, nonatomic) CLLocationDistance distanceFilter;

  每隔多少米定位一次

  <2>@property(assign, nonatomic) CLLocationAccuracy desiredAccuracy;

  定位精确度(越精确就越耗电)

3、CLLocation

(1)CLLocation对象用来表示某个位置的地理信息,比如经纬度、海拔等等

(2)经纬度

  @property(readonly, nonatomic) CLLocationCoordinate2D coordinate;

(3)海拔

  @property(readonly, nonatomic) CLLocationDistance altitude;

(4)路线,航向(取值范围是0.0° ~ 359.9°,0.0°代表真北方向)

  @property(readonly, nonatomic) CLLocationDirection course;

(5)行走速度(单位是m/s)

  @property(readonly, nonatomic) CLLocationSpeed speed;

(6)计算两个位置间的距离

  - (CLLocationDistance)distanceFromLocation:(const CLLocation *)location

4、CLLocationCoordinate2D

(1)CLLocationCoordinate2D是一个用来表示经纬度的结构体

(2)定义如下:

  typedef struct {

        CLLocationDegrees latitude; // 纬度

      CLLocationDegrees longitude; // 经度

  } CLLocationCoordinate2D;

(3)一般用CLLocationCoordinate2DMake函数来创建CLLocationCoordinate2D

5、关于用户隐私

(1)从iOS 6开始,苹果在保护用户隐私方面做了很大的加强,很多操作都必须经过用户批准授权:

   <1>获得用户的位置  

  <2>访问用户的通讯录

  <3>日历

  <4>相机

  <5>相册

  <6>等等

(2)如何设置用户隐私

   <1>开发者可以在Info.plist中设置NSLocationUsageDescription说明定位的目的(Privacy - Location Usage Description)

   <2>  总是使用用户位置:NSLocationAlwaysUsageDescription

     使用应用时定位:NSLocationWhenInUseDescription

  

  <3> 不设置该字段,定位不能使用(至少设置其中之一,两个都设置,NSLocationAlwaysUsageDescription生效)

6、示例代码

#import "ViewController.h"
#import <CoreLocation/CoreLocation.h>@interface ViewController ()<CLLocationManagerDelegate>
@property (nonatomic, strong) CLLocationManager *manager;
@end
@implementation ViewController- (CLLocationManager *)manager
{if (!_manager) {//1.创建一个定位管理器_manager =  [[CLLocationManager alloc]init];}return _manager;
}- (void)viewDidLoad {[super viewDidLoad];//2.获取用户的授权[self.manager requestAlwaysAuthorization];//3.开始定位[self.manager startUpdatingLocation];//4.设置代理self.manager.delegate = self;//设置属性/*//导航专用的精确度extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);extern const CLLocationAccuracy kCLLocationAccuracyBest;extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters;extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters;extern const CLLocationAccuracy kCLLocationAccuracyKilometer;extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers;*///定位精确度self.manager.desiredAccuracy =  kCLLocationAccuracyBestForNavigation;//使用场景//求距离CLLocation *loc1 = [[CLLocation alloc]initWithLatitude:40 longitude:116];CLLocation *loc2 = [[CLLocation alloc]initWithLatitude:41 longitude:116];CLLocationDistance dis =  [loc1 distanceFromLocation:loc2];NSLog(@"%f",dis);}#pragma mark - CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{//1.获取用户的位置CLLocation *location = [locations firstObject];CLLocationCoordinate2D coordinate =  location.coordinate;NSLog(@"%f ---- %f",coordinate.latitude,coordinate.longitude);NSLog(@"locations");
}@end

转载于:https://www.cnblogs.com/cleven/p/5432213.html

LBS(定位)的使用相关推荐

  1. LBS定位应用app的兴趣点与名称搜索

    LBS定位应用app的兴趣点与名称搜索 2015-12-26 22:15:18 我们知道,美团与大众点评的涉及30亿美金的重量级合并是非常的吸引眼球的.在这一场合并中,美团主要看重的是大众点评的门店P ...

  2. 支付和LBS定位对于O2O到底有多重要?

    最近听百度P9构架师分享了一个观点,对我启发较大,写了篇文章来分享一下我对这个观点的思考和看法: O2O的O分别是线上的Online,和线下的Offline.中间的2一个是支付,另一个是LBS(地理位 ...

  3. GNSS系列(2)------OneMO模组LBS定位使用方法全攻略

    由于工作需要,最近开启了GNSS系列文章的撰写工作,发布于公司官网,现将其同步至CSDN. 原文链接: http://onemo10086.com/#/school/article/166 各位小伙伴 ...

  4. 人员定位胸牌关于不同移远模块LBS定位数据格式差异的问题说明

    随着物联网的发展,关于资产跟踪定位的需求不断攀升,其中人员定位作为其中重要一项,被广泛运用于老人.儿童防丢失.户外工作者管理以及企业内部优化流程等. 人员定位胸牌采用WIFI/GNSS/LBS多种定位 ...

  5. WIFI定位,LBS定位,GNSS定位优缺点和适用场景

    三种定位方式的介绍 WIFI定位: 每一个无线AP(路由器)都有一个全球唯一的MAC地址,并且一般来说无线AP在一段时间内不会移动: 设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP信号,无论是 ...

  6. 安卓学习专栏——百度地图(1)获取SHA1指纹申请百度地图API Key使用百度LBS定位功能(图文保姆级)

    步骤 系列文章 前言 1.前期准备 2.创建应用 3.获取发布版SHA1和开发版SHA1 3.1找到.android文件夹位置 3.2Android Studio的Terminal中cd路径 3.3输 ...

  7. LBS定位技术之GPS(一)

    LBS定位技术从方法上可分成三类:基于三角关系的定位技术.基于场景分析的定位技术.基于临近关系的定位技术(唐毅和杨博雄,2003). 本博文首先对基于三角关系的定位技术进行了介绍,并对其中的应用最广泛 ...

  8. LBS定位技术之GPS

    LBS定位技术从方法上可分成三类:基于三角关系的定位技术.基于场景分析的定位技术.基于临近关系的定位技术(唐毅和杨博雄,2003). 本博文首先对基于三角关系的定位技术进行了介绍,并对其中的应用最广泛 ...

  9. 基站|WIFI|LBS定位|经纬度|查询|API接口

    非常好用的定位数据接口,更新及时,定位精准 地址:LBS数据仓库 | 基站|WIFI|LBS定位|经纬度|查询|API接口

最新文章

  1. VMware中Ubuntu系统不全屏问题
  2. uvm_dpi——DPI在UVM中的实现(一)
  3. SCI期刊上发现大量辣眼学术名词,用机翻规避抄袭,作者主要来自中国
  4. 总结django form
  5. 游戏筑基开发之贪吃蛇移动算法(C语言)
  6. CentOS更改主机名
  7. 程序员保护眼睛几种方法
  8. python使用list方法,将迭代器转换为列表后,再次循环打印迭代器输出为空
  9. MySQL复制一张表数据到另一张新表
  10. C语言BT软件项目总结
  11. Unreal Engine4人物模板编辑与解析(1)
  12. 项目经理的职责和权限分别是什么?
  13. mysql和mongo+查询效率_Mongodb VS Mysql 查询性能
  14. typora配置好smms后还是typora上传图片失败:image load failed。
  15. Unity3d游戏引擎Windy系列教程:常见组件扫盲讲解引入unity所需的脚本语言基础
  16. 后台获取访问端的真实ip地址
  17. 一文让你知道测试职业到底有哪些发展方向
  18. 社区实践 | Kube-OVN实现K8s多租户网络管理
  19. 【电子】Baseband Signal and Passband Signal
  20. 一款mipi转lvds的lcd调试(lt8912b)

热门文章

  1. 计算机操作培训信息报道,【计控学院】计算机技能培训交流会成功举办
  2. python产生5个随机数_python基础5 - 产生随机数
  3. 北工大计算机学院博导,北工大计算机学院计算机科学与技术导师介绍:李玉鉴...
  4. milvus问答系统部署
  5. 运动用品品牌排行榜,2022年值得买的运动用品推荐
  6. 关于Antd的Affix突然不好用了,或者Window的scroll监听不好用了
  7. Android SurfaceView+MediaPlayer视频按比例缩放,视频添加同比例描点标记tag
  8. EnableWindow()函数的应用
  9. 我用Python纪念了那些被烂片收割的智商税!
  10. 分析1.6万部电影,找出了华语电影烂片王