CoreLocation定位服务

1.CLLocationManager

CLLocationManager的常用操作和属性

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

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

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

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

每隔多少米定位一次

  @property(assign, nonatomic) CLLocationDistance distanceFilter;

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

  @property(assign, nonatomic) CLLocationAccuracy desiredAccuracy;

2.CLLocation

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

(1)经纬度

  @property(readonly, nonatomic) CLLocationCoordinate2D coordinate;

(2)海拔

  @property(readonly, nonatomic) CLLocationDistance altitude;

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

  @property(readonly, nonatomic) CLLocationDirection course;

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

   @property(readonly, nonatomic) CLLocationSpeed speed;

(5)计算2个位置之间的距离

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

3.CLLocationCoordinate2D

CLLocationCoordinate2D是一个用来表示经纬度的结构体,定义如下

typedef struct {

CLLocationDegrees latitude; // 纬度CLLocationDegrees longitude; // 经度

} CLLocationCoordinate2D;

一般用CLLocationCoordinate2DMake函数来创建CLLocationCoordinate2D

//
// YYViewController.m
// 18-定位服务

 #import "YYViewController.h"#import <CoreLocation/CoreLocation.h>//需要遵守CLLocationManagerDelegate协议@interface YYViewController ()<CLLocationManagerDelegate>@property(nonatomic,strong)CLLocationManager *locMgr;@end@implementation YYViewController#pragma mark-懒加载-(CLLocationManager *)locMgr{if (_locMgr==nil) {//1.创建位置管理器(定位用户的位置)self.locMgr=[[CLLocationManager alloc]init];//2.设置代理self.locMgr.delegate=self;}return _locMgr;}- (void)viewDidLoad{[super viewDidLoad];//判断用户定位服务是否开启if ([CLLocationManager locationServicesEnabled]) {
//开始定位用户的位置[self.locMgr startUpdatingLocation];
//每隔多少米定位一次(这里的设置为任何的移动)self.locMgr.distanceFilter=kCLDistanceFilterNone;
//设置定位的精准度,一般精准度越高,越耗电(这里设置为精准度最高的,适用于导航应用)self.locMgr.desiredAccuracy=kCLLocationAccuracyBestForNavigation;}else{//不能定位用户的位置//1.提醒用户检查当前的网络状况//2.提醒用户打开定位开关}//测试方法,计算两个位置之间的距离[self countDistance];}#pragma mark-CLLocationManagerDelegate/***  当定位到用户的位置时,就会调用(调用的频率比较频繁)*/-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
//locations数组里边存放的是CLLocation对象,一个CLLocation对象就代表着一个位置CLLocation *loc = [locations firstObject];//维度:loc.coordinate.latitude
//经度:loc.coordinate.longitudeNSLog(@"纬度=%f,经度=%f",loc.coordinate.latitude,loc.coordinate.longitude);NSLog(@"%d",locations.count);//停止更新位置(如果定位服务不需要实时更新的话,那么应该停止位置的更新)
//    [self.locMgr stopUpdatingLocation];}//计算两个位置之间的距离-(void)countDistance{//根据经纬度创建两个位置对象CLLocation *loc1=[[CLLocation alloc]initWithLatitude:40 longitude:116];CLLocation *loc2=[[CLLocation alloc]initWithLatitude:41 longitude:116];//计算两个位置之间的距离CLLocationDistance distance=[loc1 distanceFromLocation:loc2];NSLog(@"(%@)和(%@)的距离=%fM",loc1,loc2,distance);}@end

ios Xcode 8.0 CoreLocation定位服务相关推荐

  1. 环信即时通讯云iOS版V2.0.9.1服务评测

    集成测试 评测环境 2G/3G/WiFi网络下: 测评环境 MAC OS(10.9.2)+ XCode(5.1) + iPhone 测试对象 环信即时通讯云 IOS SDK Version 2.0.9 ...

  2. iOS项目开发— CoreLocation的定位服务和地理编码与发编码实现

      一.CoreLocation简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如 (1)导航:去任意陌生的地方 (2)周边:找餐馆.找酒店.找银行.找电影院 2.在上述应用中,都用 ...

  3. ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案

    原来定位服务是10分钟收不到定位信息就挂起定位,现在变为最短3分钟,估计都是为了省电吧.只要你开启应用的后台定位,并且10分钟有一次定位,那么苹果就不会关闭你的线程,现在变成3分钟.若你的应用开启了后 ...

  4. iOS定位服务 CoreLocation

    // 在iOS中,定位服务API主要使用CoreLocation框架, /*CLLocationManager 用于定位服务管理类,它能够给我们提供位置信息和高度信息,也可以监控设备进入或离开某个区域 ...

  5. iOS定位服务CoreLocation

    欢迎訪问我的新博客: 开发人员说 基于LBS的应用开发是当今移动开发中的一大热门, 当中主要涉及到地图和定位两个方面. iOS开发中, 定位服务依赖于CoreLocation框架, CLLocatio ...

  6. iOS 自带定位服务

    原文地址:http://cnbin.github.io/blog/2015/07/04/ios-zi-dai-ding-wei-fu-wu/ 定位服务 iOS 7 提供了4种不同的途径进行定位,具体如 ...

  7. iOS定位服务与地图应用开发:高德地图开发

    2019独角兽企业重金招聘Python工程师标准>>> 由于博客迁移至www.coderyi.com,文章请看http://www.coderyi.com/archives/419 ...

  8. iOS 定位服务与地图

    CoreLocation(定位与地理编码等) 使用步骤: 导入CoreLocation库 创建CLLocationManager对象 请求用户授权 - 需要在Info.plist中加入 NSLocat ...

  9. iOS定位服务系列之一:获取当前位置信息

     最近的一个业务涉及地图相关的服务,由于时间比较紧,所以借鉴了网上一些大神的代码,总算是交了差.现在回想起来,当初的自己是多么的窘迫,上网查看,铺天盖地的博文,每篇都是华丽丽的几大页,功能也都能满 ...

最新文章

  1. android一个简单的异步AsyncTask下载数示例,简单下载(07)
  2. python_cookies
  3. Nginx常见的错误及解决方法
  4. DDD China Conference 2017
  5. 北京计算机在职研究生双证学校,北京在职研究生目前有哪些学校开设了双证专业?...
  6. 外部函数获取内部函数变量_一维随机变量的分布函数
  7. 蓝桥杯2017年第八届C/C++省赛A组第一题-迷宫
  8. 【Prison Break】第八天(4.4)
  9. 关于VFS文件系统中的superblock、inode、d_entry和file数据结构
  10. fb静态区域_西门子 PLC FC和FB用法讲解
  11. java获取pdf的属性_Java 文件属性.pdf
  12. Mobileye技术与市场走势
  13. keil5点击调试提示SarmCM3.dll文件缺少问题
  14. 轻轻松松背单词软件测试,扇贝单词历史版本
  15. 微信小程序怎么开店?怎么开一个小程序店铺
  16. 节假日查询接口,加班,补班,日期查询,放假,日历
  17. Android 第三方SDK的检测与提取
  18. 【游戏建模】将Ciri转为守望先锋的角色
  19. 线程中断标志位 interrupt()、interrupted()、isInterrupted() 的认识
  20. MySQL主从同步数据

热门文章

  1. PS/2接口鼠标不能使用滚轮
  2. 七雄争霸手机网页服务器,七雄争霸手游11月2日服务器数据互通公告
  3. 自然语言处理:文本相似度计算(欧氏距离、余弦相似度、编辑距离、杰卡德相似度)
  4. Unity 学习网站
  5. 八 常用控件 QLabel
  6. advisor纯电动汽车模型 特斯拉仿真模型 tesla model3 可做纯电动汽车再生制动策略仿真
  7. 未来世界的幸存者 读后感(现实篇和职业篇)【原创】
  8. [转] 移动信息网商业模式讨论会-文字实录
  9. 华为运营商级路由器配置示例 | L3VdPdNdv4 over SRv6 BE ECMP
  10. uni-app前端开发(二)新闻功能