解決iOS地圖持續定位耗電問題


 

地圖位置刷新的代理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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM