Ios 核心定位捕获速度

Ios 核心定位捕获速度,ios,swift,Ios,Swift,我正在使用CLLocationManager捕获位置数据。我不太关心水平精度,但我希望速度尽可能精确 有人知道KCllocationAccuracyThreekm是否足以满足我的用例,还是我必须使用kCLLocationAccuracyBest才能获得最准确的速度 谢谢。TLDR;KCallocationAccuracyBest是一条路要走 有关详细信息,请参见TLDR;KCallocationAccuracyBest是一条路要走 有关详细信息,请参见AFAIKKCllocationAccura

我正在使用CLLocationManager捕获位置数据。我不太关心水平精度,但我希望速度尽可能精确

有人知道KCllocationAccuracyThreekm是否足以满足我的用例,还是我必须使用kCLLocationAccuracyBest才能获得最准确的速度


谢谢。

TLDR;KCallocationAccuracyBest是一条路要走


有关详细信息,请参见TLDR;KCallocationAccuracyBest是一条路要走


有关详细信息,请参见AFAIK
KCllocationAccuracyThreekm‍
使用电池塔(不使用GPS)工作,它不会提供每秒钟的信息(这就是为什么它对电池有好处),也不会使用核心运动。没有GPS或coreMotion,任何计算的速度都不会被认为是准确的


所以要回答你的问题,不,它不会给你一个准确的速度,但为了安全起见,只要跳进车里开始记录。(但请记住关闭所有其他应用程序的位置服务,因为有时精度更高的其他应用程序可能会提高您的应用程序的精度)

AFAIK
kclocationaccuracitythreekm‍
使用电池塔(不使用GPS)工作,它不会提供每秒钟的信息(这就是为什么它对电池有好处),也不会使用核心运动。没有GPS或coreMotion,任何计算的速度都不会被认为是准确的


所以要回答你的问题,不,它不会给你一个准确的速度,但为了安全起见,只要跳进车里开始记录。(尽管记得关闭所有其他应用程序的位置服务,因为有时其他精度更高的应用程序可能会提高您的应用程序的精度)

我在一个基于地图的应用程序中遇到了相同的问题,我通过这种方式解决了(在德里地铁旅行时,甚至我进行了测试),并且工作正常:

   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()

}

使用此代码后,请随时提供反馈。希望它能解决你的问题。继续编码

我在我的一个基于地图的应用程序中遇到了相同的问题,我通过这种方式解决了这个问题(在德里地铁旅行时,即使我进行了测试),并且工作正常:

   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()

}

使用此代码后,请随时提供反馈。希望它能解决你的问题。继续编码取决于你是如何计算速度的?通过比较两个坐标?我不是在计算速度。我从CLLocation(CLLocationSpeed)读取速度属性取决于您计算速度的方式?通过比较两个坐标?我不是在计算速度。我正在从CLLocation(CLLocationSpeed)读取速度属性