ios - 在 2D 平面 iOS 中从当前位置查找用户的方位
问题描述
我正在尝试从我的 iOS 应用程序中的当前位置访问用户的方位。
我正在使用下面的代码来访问它
func locationManager(_ manager: CLLocationManager, didUpdateHeading newHeading: CLHeading) {
heading = newHeading.trueHeading > 0 ? newHeading.trueHeading : newHeading.magneticHeading
}
但是,如果我们在 2D 平面中查看,则它没有用,其中度数的范围是顺时针方向从 0 到 360。我想通过套接字将方位数据发送给不同的订户用户,其中可以在 iOS 和 Android 上显示地图上带有航向指示器的注释(就像带有航向的当前位置指示器)。我正在使用一个自定义图像,该图像具有指向上方(12 点钟)的航向指示器,以在我的其他应用程序上显示。
Android 有轴承,这是我正在寻找的那种价值。
我怎样才能得到那个值?
谢谢
解决方案
航向是由磁力计确定的,确实不能使用。这是一个静态值。
通过比较后续 (GPS) 位置来确定方位。这是一个随时间变化的动态值。
iOS 提供轴承,但将其命名为“课程”:locationManager(_:didUpdateLocations:)
.
你必须阅读CLLocation
's course
property。
因为只有在移动设备移动时才能确定航向,所以航向精度取决于速度和 GPS 精度。因此,您必须使用courseAccuracy
来确定如何/是否在 UI 上显示它。
推荐阅读
- python - 二维数组元素替换为区间索引
- asp.net-core - 无法将 http 请求往返于上游
- html - 使 div 根据父级大小增长和缩小
- angularjs - 在angularjs中发送带有%字符的json时出现格式错误的uri错误
- java - 错误处理元素 XXX:CLASS_NOT_FOUND
- reactjs - 如何组合 Array / Object reducer
- python - 在项目之间共享 linter 配置
- typo3 - TYPO3:如何将 userFunc TypoScript 条件迁移到 Symfony 表达式语言?
- python - 使while循环无法访问
- c# - 获取 .exe 文件的 applocker 状态