Android API演示中的指南针有缺陷吗?

Android API演示中的指南针有缺陷吗?,android,api,sample,android-sensors,coordinate-systems,Android,Api,Sample,Android Sensors,Coordinate Systems,我最近在Androids4.0API演示中试用了指南针。只要你将手机保持在纵向模式,它就可以工作,但一旦你将手机置于横向模式,“北方”就会指向另一个方向。我认为有人明确指出 坐标系是相对于手机屏幕的默认方向定义的。当设备的屏幕方向改变时,不会交换轴 但事实就是这样 为什么指南针指向错误的方向?上面的陈述是不真实的,还是仅仅是API样本计算数据过程中的一个bug 指南针演示确实不完整。在屏幕上绘制指南针时,需要考虑设备方向。 更多细节,请看这个 这也是一个很好的主题讨论 我还有一个关于我的工作的例

我最近在Androids4.0API演示中试用了指南针。只要你将手机保持在纵向模式,它就可以工作,但一旦你将手机置于横向模式,“北方”就会指向另一个方向。我认为有人明确指出

坐标系是相对于手机屏幕的默认方向定义的。当设备的屏幕方向改变时,不会交换轴

但事实就是这样


为什么指南针指向错误的方向?上面的陈述是不真实的,还是仅仅是API样本计算数据过程中的一个bug

指南针演示确实不完整。在屏幕上绘制指南针时,需要考虑设备方向。 更多细节,请看这个

这也是一个很好的主题讨论

我还有一个关于我的工作的例子,你可以使用。(这里粘贴的代码太多)相关的类是CompassSensorListener.java和CompassHelper.java


干杯

指南针演示确实不完整。在屏幕上绘制指南针时,需要考虑设备方向。 更多细节,请看这个

这也是一个很好的主题讨论

我还有一个关于我的工作的例子,你可以使用。(这里粘贴的代码太多)相关的类是CompassSensorListener.java和CompassHelper.java


干杯

嘿,我在github上查看了你的项目。所以在调试的时候,我看到了一些谜团,我希望你能启发我。您有一个
onDirectionChanged(轴承)
,它的值从1.XX到3.XX???您可以使用视图中的
Location.getDeclination()
来更正这些值。我想要的就是在我们处理旋转矩阵之前由方位传感器提供的方位角。请参阅以获得澄清。请随时给我发一封邮件到gmail.com的raffn1是的,方向改变给你方位角。只需简单地做数学运算,就可以得到学位(0-359)。磁偏角是一个很小的值,我用它来得到真正的北,相对于磁北。您可以安全地忽略代码的这一部分,但事实并非如此。我用
Math.toDegrees(轴承)
和你的
rotateAngle
RadarView.draw()中记录了
onDirectionChanged
和结果。所以我假设我必须加上180???那该死的记录在哪里?另外,如何获得正确的
roll
pitch
值是完全不清楚的。你说得对。我在画指南针的时候也加了180。真的没问题,先生。我只是想知道,这是在哪里记录的,以及如何正确地计算
音高
滚动
嘿,我在github上查看了你的项目。所以在调试的时候,我看到了一些谜团,我希望你能启发我。您有一个
onDirectionChanged(轴承)
,它的值从1.XX到3.XX???您可以使用视图中的
Location.getDeclination()
来更正这些值。我想要的就是在我们处理旋转矩阵之前由方位传感器提供的方位角。请参阅以获得澄清。请随时给我发一封邮件到gmail.com的raffn1是的,方向改变给你方位角。只需简单地做数学运算,就可以得到学位(0-359)。磁偏角是一个很小的值,我用它来得到真正的北,相对于磁北。您可以安全地忽略代码的这一部分,但事实并非如此。我用
Math.toDegrees(轴承)
和你的
rotateAngle
RadarView.draw()中记录了
onDirectionChanged
和结果。所以我假设我必须加上180???那该死的记录在哪里?另外,如何获得正确的
roll
pitch
值是完全不清楚的。你说得对。我在画指南针的时候也加了180。真的没问题,先生。我只想知道,这是在哪里记录的,以及如何正确计算
俯仰
滚动