2017-09-23 37 views
0

我使用CLLocationManager捕獲位置數據。我不太關心水平精度,但我希望速度儘可能準確。CoreLocation捕獲速度

任何人都知道,如果kCLLocationAccuracyThreeKilometers將足夠我的用例,或者我必須使用kCLLocationAccuracyBest來獲得最準確的速度?

謝謝。

+0

取決於你正在計算速度?通過比較兩個座標 –

+0

? –

+0

我不計算速度。我正在從CLLocation(CLLocationSpeed)讀取速度屬性 – SKT

回答

1

AFAIK使用手機信號塔kCLLocationAccuracyThreeKilometers‍作品(並且不使用GPS),它不會給你每一秒的信息(這就是爲什麼它是很好的電池),也不它使用核心運動。沒有GPS或coreMotion任何速度計算將不會被認爲是準確的

所以要回答你的問題,它不會給你一個準確的速度,但只是爲了安全起見,只是跳進汽車,並開始日誌記錄。 (記住,雖然把位置服務關閉所有其他應用程序,因爲有時其他應用程序具有更好的精確度可以提高應用的精度)

0

我停留在同樣的問題,在我的基於地圖的應用程序之一,我解決了這個方法(在旅途中通過德里地鐵甚至我測試),並以其優良的工作:

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     //Get Current Location 
     let location = locations.last! as CLLocation 
     let userLocation:CLLocation = locations[0] as CLLocation 

     // For getting speed 
     let speed = location.speed * 2.23694 
     lblSpeed.text = (location.speed<0) ? "-- \n mph" : String(format: "%d \n mph", Int(speed)) 
     locationManager.startUpdatingHeading() 

} 

精度在kCLLocationAccuracyBest

locationManager.desiredAccuracy = kCLLocationAccuracyBest 

歡迎您提供反饋的尾部完美呃使用這個代碼。希望它能解決你的問題。保持編碼