location manager无法在ios中获得速度

location manager无法在ios中获得速度,ios,swift,locationmanager,Ios,Swift,Locationmanager,我正在iOS应用程序中使用CLLocationManager获取用户的当前位置 我还需要计算用户的速度,可以使用委托方法“didUpdateLocations”来计算 我可以获得用户当前位置的更新,但速度值不正确。最初速度值为-1,然后即使位置正确更新,速度值也没有变化 我的位置管理器的初始化如下所示 var locationManager = CLLocationManager() locationManager.delegate = self; locationMan

我正在iOS应用程序中使用CLLocationManager获取用户的当前位置

我还需要计算用户的速度,可以使用委托方法“didUpdateLocations”来计算

我可以获得用户当前位置的更新,但速度值不正确。最初速度值为-1,然后即使位置正确更新,速度值也没有变化

我的位置管理器的初始化如下所示

    var locationManager = CLLocationManager()
    locationManager.delegate = self;
    locationManager.distanceFilter = kCLLocationAccuracyNearestTenMeters;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    locationManager.requestAlwaysAuthorization()
    locationManager.startUpdatingLocation()
有什么问题吗


高级感谢..

通常,在处理外部事件和附件(位置、硬件通信等)时,当您想要的信息不可计算或以某种方式无效时,苹果会给您一个-1。你不能做任何假设,你只需要截取这些信息(某种计算错误)并像信息丢失一样处理它

负值表示速度无效


通常,在处理外部事件和附件(位置、硬件通信等)时,当您想要的信息不可计算或以某种方式无效时,苹果会给您一个-1。你不能做任何假设,你只需要截取这些信息(某种计算错误)并像信息丢失一样处理它

负值表示速度无效


这是默认行为,您必须自己处理。有许多过滤机制可以覆盖这个问题,比如卡尔曼滤波。这是默认行为,你必须自己处理。有许多滤波机制可以解决这个问题,比如卡尔曼滤波。
    var locationManager = CLLocationManager()
    locationManager.delegate = self;
    locationManager.distanceFilter = kCLLocationAccuracyNearestTenMeters;
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    locationManager.requestAlwaysAuthorization()
    locationManager.startUpdatingLocation()