[英]How to manually trigger CLLocationManager update?
我正在使用以下配置監視用戶位置:
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoringSignificantLocationChanges()
我有一個開關,允許用戶手動輸入地址或進行GPS跟蹤。 從手動位置切換到GPS位置時,我想踢CLLocationManager
來更新用戶位置並調用didUpdateLocations
事件。 否則,它只是等待並等待更新。 可以一次手動觸發更新嗎?
一次可能手動觸發更新
是的,但不是帶有startMonitoringSignificantLocationChanges
。 您將需要調用startUpdatingLocation
。 請注意,即使這樣,在獲得單個可用更新之前,可能還需要多次致電您的委托人和幾秒鍾。
我做什么( 例如代碼在這里 )是看雙方horizontalAccuracy
和timestamp
,當我要么得到一個足夠精確的位置或太多時間流逝停止。
當您要開始掃描更新時啟動它,但是當您想要直接位置時則不啟動它。
如果要立即定位,請使用manager.location
請求。 如果響應nil
則當前沒有可用位置,您需要等待。 如果返回了位置,則可以檢查timestamp
以確定是否可以使用它。
從文檔:
startUpdatingLocation
連續多次調用此方法不會自動導致生成新事件。 但是,在兩者之間調用stopUpdatingLocation確實會導致下次調用此方法時發送新的初始事件。
因此您可以停止並立即重新啟動位置更新以手動觸發它!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.