在iOS中使用CoreLocation框架(用於GPS跟蹤),我該如何請求位置而不是獲取連續更新。我不希望每秒鐘都會調用doUpdateToLocation,我只是想在需要時獲取位置。如何輪詢CoreLocation而不是獲取更新?
謝謝!
在iOS中使用CoreLocation框架(用於GPS跟蹤),我該如何請求位置而不是獲取連續更新。我不希望每秒鐘都會調用doUpdateToLocation,我只是想在需要時獲取位置。如何輪詢CoreLocation而不是獲取更新?
謝謝!
我不相信有辦法做到這一點。你可以開始更新,然後在didUpdateToLocation禁用它們,所以你只能得到一個。
停止位置服務時,你有位置成功
你不能。硬件(收音機等)速度不夠快。相反,在你需要一個位置之前,你必須先調用startUpdatingLocation方法,然後等待收音機按照你的需要得到一個精確的修復(前幾個位置回調可能不是很準確或不如以後的回調) 。然後,如果您長時間不需要它們以幫助節省電池壽命,則可以停止位置更新。
正如我在評論中所建議的,您可以隨意使用-startUpdatingLocation
和-stopUpdatingLocation
的組合,如果您在接收到位置更新時停止更新,它將不會繼續,除非您再次啓動它。示例如下:
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
//Store your new location before stopping updates.
[manager stopUpdatingLocation];
}
現在,當您想要在應用程序的某個其他時間檢索新位置時。不用擔心它更新的頻率,因爲它只會一次。
[locationManager startUpdatingLocation];
希望這是有道理的,並幫助!
當您調用startUpdatingLocation
方法時,它將首先返回緩存點。因此,在代理方法didUpdateToLocation
中,您應該檢查該位置的準確性。如果它不在可接受範圍內,則應忽略該位置。你應該繼續獲取位置,直到點落在可接受的範圍內。一旦收到此類信息,您應該致電stopUpdatingLocation
。
之後可以重新啓動嗎? –
是的,它會在獲得一個位置後關閉。 – ACBurk
您可以通過調用'-startUpdatingLocation'和'-stopUpdatingLocation'方法來啓動和停止它。 – skram