2013-06-12 21 views
0

在我的ios應用程序中,我使用定時器上的核心位置管理器來獲取當前位置。該應用程序是可配置的,所以我允許用戶將其設置爲低至1分鐘。因此,即使應用程序位於後臺,也會每隔1分鐘報告一次gps位置。IOS短時間內核的位置管理器

我不想使用核心位置管理器的重大更改,我想繼續使用計時器,因爲準確性會更好。

設置定時器低至5秒是否有任何可預見的問題?我這樣做的理由是獲取位置,將其保存在一個變量中,然後在5秒內重新獲取,並將其與一個距離變量進行比較,然後確定用戶是否移動得足夠遠並報告它,如果是的話。

+0

看看這裏[這裏](http://stackoverflow.com/questions/6104143/iphone-cllocationmanager-updates-every-0-5-seconds) – the1pawan

+0

非常感謝你。我想知道他們爲什麼說你不能告訴它什麼時候把你的位置告訴你。我將分鐘設置爲一分鐘,並且每次都得到它。 – SeeleyBoothe

+0

他說這取決於輕鬆找到WiFi信號和GPS信號......你可以看到由Dachmt發表的評論,他每秒收到更新 – the1pawan

回答

0

獲取位置取決於查找WiFi信號和GPS信號的難易程度。無論你設置1分鐘還是1秒,如果沒有信號。看這裏的評論Here

0

你正在遵循一個錯誤的方法來做到這一點。您需要使用Apple提供的Delegates來實現它。 你在做什麼,是完全錯誤的,爲什麼你想在5秒後檢查位置,如果它沒有從最後的位置改變。

的解決問題的辦法:

您需要設置的準確性根據您的要求:

kCLLocationAccuracyBestForNavigation 
kCLLocationAccuracyBest 
kCLLocationAccuracyNearestTenMeters 
kCLLocationAccuracyHundredMeters 
kCLLocationAccuracyKilometer 
kCLLocationAccuracyThreeKilometers 

您將獲得委託方法調用,每當有特定的變化地點:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 

這將節省電池以及提高性能,因爲它會節省不必要的電話一次又一次得到位置。