如果改变我握住设备的方式,CLHeading magneticHeading会给出不同的值

时间:2016-01-01 03:20:23

标签: ios swift core-location

我正在使用CLHeading的磁性标题来获取设备的前进方向,并且它非常准确。

如果我改变设备的方向(屏幕面向x,y或z轴),那么磁性标题的值将改变〜+ - 15度。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:4)

我承认我不是专家,但我怀疑documentation for CLHeading会指出你正确的方向(双关语无意)......

  

此属性中的值表示相对于磁北极的航向,这与地理北极不同。值0表示设备指向磁北,90表示指向东,180表示指向南,依此类推。此属性中的值应始终有效。

     

在iOS 3.x及更早版本中,无论设备的实际物理或界面方向如何,此属性中的值始终以纵向方向相对于设备顶部进行测量。在iOS 4.0及更高版本中,该值是相对于位置管理器指定的标题方向测量的。有关详细信息,请参阅headingOrientation中的CLLocationManager Class Reference属性。

您似乎需要检测设备方向并相应地调整值。