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