问题描述
我正在尝试从我的 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
的{{3}}。
因为只有在移动设备移动时才能确定航向,所以航向精度取决于速度和 GPS 精度。因此,您必须使用 course
property 来确定如何/是否将其显示在 UI 上。