CoreLocation 捕捉速度

Posted

技术标签:

【中文标题】CoreLocation 捕捉速度【英文标题】:CoreLocation capturing speed 【发布时间】:2017-09-23 10:46:47 【问题描述】:

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

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

谢谢。

【问题讨论】:

取决于你计算速度的方式? 通过比较两个坐标? 我没有计算速度。我正在从 CLLocation (CLLocationSpeed) 读取速度属性 【参考方案1】:

AFAIK kCLLocationAccuracyThreeKilometers‍ 使用手机信号塔(并且不使用 GPS),它不会为您提供每一秒的信息(这就是它对电池有益的原因),也不会使用核心 Motion。如果没有 GPS 或 coreMotion,任何计算的速度都不会被认为是准确的

所以要回答您的问题,不,它不会为您提供准确的速度,但为了安全起见,只需跳上汽车并开始记录。 (虽然记得关闭所有其他应用的定位服务,因为有时其他精度更高的应用可能会提高您应用的准确性)

【讨论】:

【参考方案2】:

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

   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

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

【讨论】:

【参考方案3】:

TLDR; kCLLocationAccuracyBest 是要走的路。

详情见https://***.com/a/737968/190599

【讨论】:

以上是关于CoreLocation 捕捉速度的主要内容,如果未能解决你的问题,请参考以下文章

速度限制不起作用,但捕捉到道路和其他功能可以

无论滚动速度如何,如何在每次滑动时将集合视图项捕捉到一个

求一个基于STM32的速度测速程序

iOS CoreLocation框架

CoreLocation框架之APP定位

无法通过 Corelocation 找到位置