地图位置刷新的代理didUpdateLocations会持续调用,手机非常耗电

但是在实际开发中,有一些APP确实需要用到持续定位的功能,比如:运动类, 导航类, 天气类等等

如何进行持续定位呢?保证持续定位的前提下降低APP的耗电量呢?

distanceFilter:距离过滤器

在生成更新事件之前, 设备的最小距离(以米为单位), 必须是水平移动.

这句就是设置这个值会在执行didUpdateLocations方法前判断水平移动距离是否达到这个值

当然仅仅这样还是不够的. 我们还可以设置GPS的精度

译文:

实例属性

desired Accuracy

位置数据的准确性。

概述

接收机尽力达到要求的准确度; 然而,实际的准确性并不保证。

您应该为此属性指定适合您的使用情景的值。例如,如果您仅在一公里内需要当前位置,您应该指定k​CLLocation​Accuracy​Kilometer而不是k​CLLocation​Accuracy​Best​For​Navigation。确定更精确的位置需要更多的时间和更多的功率。

当请求高精度位置数据时,由位置服务传递的初始事件可能不具有您请求的准确性。定位服务尽快提供初始事件。然后,随着数据可用,您可以根据需要继续确定所请求的准确性,并提供其他事件。

对于iOS和MacOS,此属性的默认值为k​CLLocation​Accuracy​Best。对于watchOS,默认值为k​CLLocation​Accuracy​Hundred​Meters

此属性仅与标准位置服务结合使用,并且在监视重大位置更改时不使用。

  /**

kCLLocationAccuracyBest;              //最好的,米级

kCLLocationAccuracyNearestTenMeters;  //十米

kCLLocationAccuracyHundredMeters;     //百米

kCLLocationAccuracyKilometer;         //一公里

kCLLocationAccuracyThreeKilometers;   //三公里

*/

//持续定位

/**

1.开启开始定位之后,不关闭,让其持续定位

2.设置距离筛选器:坐标移动到指定距离才会调用代理方法

3.设置精准度:通过降低计算的过程(GPS),来达到省电的目的

**/

//iOS定位方法:1.GPS全球定位系统(24颗)   2.移动基站  3.Wifi

//传入的是double值,单位是米,这里传入10,表示距离移动超过十米,才会调用代理方法

self.locationManager.distanceFilter = 10;

//GPS精准度  默认值:kCLLocationAccuracyBest   最精准:kCLLocationAccuracyBestForNavigation

self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

解决iOS地图持续定位耗电问题的更多相关文章

  1. iOS 后台持续定位详解(支持ISO9.0以上)

    iOS 后台持续定位详解(支持ISO9.0以上) #import <CoreLocation/CoreLocation.h>并实现CLLocationManagerDelegate 代理, ...

  2. iOS开发雕虫小技之傻瓜式定位神器-超简单方式解决iOS后台定时定位

    1.概述 由于公司一款产品的需求,最近一直在研究iOS设备的后台定位.主要的难点就是,当系统进入后台之后,程序会被挂起,届时定时器.以及代码都不会Run~ 所以一旦用户将我的App先换到了后台,我的定 ...

  3. IOS地图及定位使用

    1.定位 定位使用CoreLocation库,引入CoreLocation/CoreLocation.创建CLLocationManager对象,使用startUpdatingLocation方法开始 ...

  4. [OC][地图] 高德地图之定位初探(一)

    使用前的说明 高德地图开放平台的iOS定位模块网址-->http://lbs.amap.com/api/ios-location-sdk/summary/ 高德地图有Web端.android平台 ...

  5. iOS UI进阶-4.0 地图与定位

    在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆.找酒店.找银行.找电影院   在上述应用中,都用到了地图和定位功能,在iOS开发中,要想加入这2大功能 ...

  6. iOS开发系列--地图与定位

    概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个 ...

  7. iOS 地图定位及大头针的基本使用

    地图 Part1 - 定位及大头针的基本使用 一.MapKit 作用 : 用于地图展示 如大头针,路线,覆盖层展示等(着重界面展示) 使用步骤 导入头文件 #import <MapKit/Map ...

  8. iOS开发之地图与定位

    无论是QQ还是微信的移动客户端都少不了定位功能,之前在微信demo中没有添加定位功能,今天就写个定位的小demo来了解一下定位和地图的东西.地图和定位看上去是挺高大上一东西,其实用法比TableVie ...

  9. iOS进阶_地图上定位的标志——大头针

    一.添加大头针 地图使用的框架是MapKit 大头针走的是MKAnnotation协议 /* 注意:因为是满足协议MKAnnotation,所以没有MKAnnotation的系统大头针类,必须自定义大 ...

随机推荐

  1. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之三:安装Windows活动目录域服务

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  2. SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里

    SAP SD如何将销售订单其它ITEM加入到一个已创建好的交货单里 如下的销售订单,有多个ITEM, 为其中的第一个ITEM创建了DN 80016362, 如果业务发现需要修改该交货单,将销售订单里的 ...

  3. AudioRecord 录制播放PCM音频

    AudioRecord 与 MediaRecorder 区别 AudioRecord 基于字节流录制,输出的是pcm数据,未进行压缩,直接保存的pcm文件不能被播放器识别播放. 可以对音频文件进行实时 ...

  4. SQL Server要拷贝默认目录下的使用数据库需要停止的服务

  5. Git 提交代码到远程仓库

    Git 命令 一.Git如何把本地代码推送到远程仓库 1. 拉取指定分支代码 git clone -b dev https://github.com/crazyfzw/RecycleViewWithH ...

  6. 【西北师大-2108Java】第六次作业成绩汇总

    [西北师大-2108Java]第六次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第8周学习指导及要求 实验目的与要求 (1)掌握接口定义方法: (2)掌握实现接口类的定义要求: (3)掌握实 ...

  7. 史上最详细配置HTTPS

    HTTP(超文本传输协议),是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.设计HTTP的初衷是为 ...

  8. MySQL常用数据类型 length 专题

    MySQL-data_type数据类型 1.查看数据类型 mysql> help data type    //通过help对数据进行查看,以及使用的方法 2.MySQL常见的数据类型 整数in ...

  9. 图书分享 -《Natural Language Processing with Python》

    -<Natural Language Processing with Python> 链接:https://pan.baidu.com/s/1_oalRiUEw6bXbm2dy5q_0Q ...

  10. React: React的属性验证机制

    一.简介 在开发中,属性变量类型的验证,几乎是任何语言都必须关注的问题,因为如果传入的数据类型不对,轻者程序运行仅仅是给出警告⚠️,严重的会直接导致程序中断,APP闪退或者web页面挂掉,这是很严重的 ...