LBS(定位)的使用
一、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(定位)的使用相关推荐
- LBS定位应用app的兴趣点与名称搜索
LBS定位应用app的兴趣点与名称搜索 2015-12-26 22:15:18 我们知道,美团与大众点评的涉及30亿美金的重量级合并是非常的吸引眼球的.在这一场合并中,美团主要看重的是大众点评的门店P ...
- 支付和LBS定位对于O2O到底有多重要?
最近听百度P9构架师分享了一个观点,对我启发较大,写了篇文章来分享一下我对这个观点的思考和看法: O2O的O分别是线上的Online,和线下的Offline.中间的2一个是支付,另一个是LBS(地理位 ...
- GNSS系列(2)------OneMO模组LBS定位使用方法全攻略
由于工作需要,最近开启了GNSS系列文章的撰写工作,发布于公司官网,现将其同步至CSDN. 原文链接: http://onemo10086.com/#/school/article/166 各位小伙伴 ...
- 人员定位胸牌关于不同移远模块LBS定位数据格式差异的问题说明
随着物联网的发展,关于资产跟踪定位的需求不断攀升,其中人员定位作为其中重要一项,被广泛运用于老人.儿童防丢失.户外工作者管理以及企业内部优化流程等. 人员定位胸牌采用WIFI/GNSS/LBS多种定位 ...
- WIFI定位,LBS定位,GNSS定位优缺点和适用场景
三种定位方式的介绍 WIFI定位: 每一个无线AP(路由器)都有一个全球唯一的MAC地址,并且一般来说无线AP在一段时间内不会移动: 设备在开启Wi-Fi的情况下,即可扫描并收集周围的AP信号,无论是 ...
- 安卓学习专栏——百度地图(1)获取SHA1指纹申请百度地图API Key使用百度LBS定位功能(图文保姆级)
步骤 系列文章 前言 1.前期准备 2.创建应用 3.获取发布版SHA1和开发版SHA1 3.1找到.android文件夹位置 3.2Android Studio的Terminal中cd路径 3.3输 ...
- LBS定位技术之GPS(一)
LBS定位技术从方法上可分成三类:基于三角关系的定位技术.基于场景分析的定位技术.基于临近关系的定位技术(唐毅和杨博雄,2003). 本博文首先对基于三角关系的定位技术进行了介绍,并对其中的应用最广泛 ...
- LBS定位技术之GPS
LBS定位技术从方法上可分成三类:基于三角关系的定位技术.基于场景分析的定位技术.基于临近关系的定位技术(唐毅和杨博雄,2003). 本博文首先对基于三角关系的定位技术进行了介绍,并对其中的应用最广泛 ...
- 基站|WIFI|LBS定位|经纬度|查询|API接口
非常好用的定位数据接口,更新及时,定位精准 地址:LBS数据仓库 | 基站|WIFI|LBS定位|经纬度|查询|API接口
最新文章
- 根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
- 2018-2019-1 20189218《Linux内核原理与分析》第五周作业
- tcp/ip 协议栈Linux源码分析一 IPv4分片报文重组分析一
- NYOJ 36 最长公共子序列
- 17.2融合关键词的文本增强
- 矩阵论7,8,9作业
- 单例模式(Single)
- 用matlab做胶片滤镜,photoshop图像滤镜——浮雕算法(含matlab与C代码).pdf
- 计算机屏幕的显示分辨率与什么有关,计算机屏幕分辨率高低主要跟什么有关?...
- MySQL批量创建测试数据脚本
- uniapp Apple iOS 绑定解绑
- 白狐微信公众号编辑器CMS系统源码
- 各大媒体优劣对比_各大自媒体平台优缺点对比
- 查找算法--01 顺序查找和二分查找
- 集群和均衡负载[摘]
- 两种常用的全参考图像质量评价指标——峰值信噪比(PSNR)和结构相似性(SSIM)
- vscode和sqlite3的环境配置
- 藏拙的搜索引擎技术是2008年全宇宙最耀眼的搜索引擎技术吗?
- 我的江湖也是你的江湖
- 如何在本机上利用IIS网页发布实现微信小程序与数据库之间的通信