解决iOS地图持续定位耗电问题
?
地圖位置刷新的代理didUpdateLocations會持續(xù)調用,手機非常耗電
但是在實際開發(fā)中,有一些APP確實需要用到持續(xù)定位的功能,比如:運動類, 導航類, 天氣類等等
?
如何進行持續(xù)定位呢?保證持續(xù)定位的前提下降低APP的耗電量呢?
?
?
?
distanceFilter:距離過濾器
在生成更新事件之前, 設備的最小距離(以米為單位), 必須是水平移動.
這句就是設置這個值會在執(zhí)行didUpdateLocations方法前判斷水平移動距離是否達到這個值
?
?
?
?
?當然僅僅這樣還是不夠的. 我們還可以設置GPS的精度
?
譯文:
實例屬性?
desired Accuracy
位置數據的準確性。
概述
接收機盡力達到要求的準確度;?然而,實際的準確性并不保證。
您應該為此屬性指定適合您的使用情景的值。例如,如果您僅在一公里內需要當前位置,您應該指定k?CLLocation?Accuracy?Kilometer而不是k?CLLocation?Accuracy?Best?For?Navigation。確定更精確的位置需要更多的時間和更多的功率。
當請求高精度位置數據時,由位置服務傳遞的初始事件可能不具有您請求的準確性。定位服務盡快提供初始事件。然后,隨著數據可用,您可以根據需要繼續(xù)確定所請求的準確性,并提供其他事件。
對于iOS和MacOS,此屬性的默認值為k?CLLocation?Accuracy?Best。對于watchOS,默認值為k?CLLocation?Accuracy?Hundred?Meters。
此屬性僅與標準位置服務結合使用,并且在監(jiān)視重大位置更改時不使用。
?
?
?
/**
? ? ?
?? ? kCLLocationAccuracyBest;? ? ? ? ? ? ? //最好的,米級
?? ? kCLLocationAccuracyNearestTenMeters;? //十米
?? ? kCLLocationAccuracyHundredMeters; ? ? //百米
?? ? kCLLocationAccuracyKilometer; ? ? ? ? //一公里
?? ? kCLLocationAccuracyThreeKilometers; ? //三公里
?? ? */
?? ?
? ? //持續(xù)定位
? ? /**
?? ? 1.開啟開始定位之后,不關閉,讓其持續(xù)定位
?? ? 2.設置距離篩選器:坐標移動到指定距離才會調用代理方法
?? ? 3.設置精準度:通過降低計算的過程(GPS),來達到省電的目的
?? ? **/
?? ?
? ? //iOS定位方法:1.GPS全球定位系統(tǒng)(24顆) ? 2.移動基站? 3.Wifi
? ? //傳入的是double值,單位是米,這里傳入10,表示距離移動超過十米,才會調用代理方法
? ? self.locationManager.distanceFilter = 10;
?? ?
? ? //GPS精準度? 默認值:kCLLocationAccuracyBest ? 最精準:kCLLocationAccuracyBestForNavigation
? ? self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
?
轉載于:https://www.cnblogs.com/quxiangfu/p/6622551.html
總結
以上是生活随笔為你收集整理的解决iOS地图持续定位耗电问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate----Hiberna
- 下一篇: Logstash之Logstash in