ios - 航行时使用 kCLLocationBestForNavigation 最小化速度变化
问题描述
我正在开发一个 GPS Apple Watch 应用程序,以便在航行时使用,这需要高精度的起跑线场景。我怀疑额外的陀螺仪/加速度计输入实际上是在伤害,而不是帮助 GPS 准确性。例如,CLLocation.speed
与其他工具相比,可变性似乎非常高。(即 4.4 节、2.2 节、6.8 节、4.6 节……,当其他航海 GPS 仪器读数为 4.5 ,4.3 ,4.6 ,4.5,……)
我知道将 iPhone 放在附近会使手表将 GPS 处理任务转移到 iPhone 上。这肯定有助于准确性,但似乎无助于可变性。当我在水上进行测试(步行或骑自行车)时,变异性远低于航行。我在 iPhone 应用程序和手表(附近有 iPhone)上运行我的代码得到了类似的结果。
func startReceivingLocationChanges(locationManager: CLLocationManager) -> Bool {
// Do not start services that aren't available.
if !CLLocationManager.locationServicesEnabled() {
// Location services is not available.
return false
}
// Configure and start the service.
locationManager.desiredAccuracy = kCLLocationBestForNavigation // kCLLocationBestForNavigation seems to have accuracy issues when sailing, try kCLLocationBest???
locationManager.distanceFilter = kCLDistanceFilterNone // In meters.
locationManager.delegate = self
locationManager.startUpdatingLocation()
return true
}
我正在考虑尝试使用 kCLLocationAccuracyBest 关闭 Gyro/accel,希望这可能会有所帮助。我假设speed
并且course
是基于纬度/经度变化的简单计算,但也许不是?如果需要,我可以自己进行这些计算。也有兴趣可能使用一些第 3 方过滤代码来“平滑”曲线。好奇其他人尝试过什么。(我怀疑这也可能是游泳者的问题,和/或运动不是“平滑”或容易被过滤掉的山地自行车跟踪场景。)
解决方案
推荐阅读
- azure - FMI Toolbox Matlab Azure Devops CI Pipeline Bugs with network service account
- excel - 提取单元格数据,而行内的其他单元格匹配字符串
- data-annotations - Azure 数据工厂 - 通过数据注释查询管道
- php - 如何访问类中的常量?
- php - 我在标签内容中有登录和注册表单。所以问题是我可以为任何一种形式设置动作。我该如何解决
- c++ - 使用任务<>作为返回类型的co_await创建协程函数时出错
- html - 在汇总 html 表单之前,有没有办法确保至少填写一组字段中的一个?(“必需”仅用于一个场地)
- css - WP hello-elementor 主题:发表评论按钮在 Chrome 中有一个奇怪的边框
- python - 如何并行化/多线程多个生成器初始化?
- amazon-s3 - MERN 和 Amazon-s3 用于文件上传