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

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

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

谢谢。

【问题讨论】:

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

标签: ios swift


【解决方案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://stackoverflow.com/a/737968/190599

      【讨论】:

        猜你喜欢
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-02
        • 2013-06-10
        • 1970-01-01
        • 2022-01-22
        • 2011-08-27
        • 1970-01-01
        相关资源
        最近更新 更多