android.hardware.GeomagneticField类有一个方法getDeclination,我们可以使用它来查找真北。我在StackOverFlow和其他网站上看到的所有示例都将此值添加到磁北以找到真北,如下所示:
True north = Magnetic North + Declination
但是这个问题的帖子暗示这可能是错误的: Using orientation sensor to point towards a specific location
不幸的是,没有人对该帖子发表评论或投票。
Android文档说,正值“意味着磁场从真北向东旋转”。并且this page有一些数字显示相同:“正偏角 - 磁北是真北的东部”。换句话说,赤纬定义如下:
Declination = Magnetic north - True North
重新排列以找到基于磁北的真北:
True north = Magnetic north - Declination
那么,添加或减去偏角是否正确?如果添加它是正确的,为什么?
答案 0 :(得分:3)
我来到这里是因为我自己也在问同样的问题。我正在研究这个问题,所以我可能会有点误会。
你想要TRUE向北,不受你的位置影响的那个(更准确地说,你的位置受到地球磁场的影响,link)。
在导航时,你应该添加或减少赤纬,这取决于(我认为)当你使用指南针时,你的位置,即磁北东或西北到真正的北方? east\west declination
班级" GeomagneticField"可以为你计算偏移量,如果我正确理解方法的描述,它也会告诉你,你有东偏西偏:正东是你多少东西,你西边多少是负面的。 />
1)得到你的标题,即你相对于磁北(通过磁传感器获得)
2)得到你的赤纬
如果赤纬是正的,你的磁北向东到真正的北方,所以你的标题是'#34;在右边"来自真北的(某种程度)!我们添加,因此:航向(磁性)+赤纬=真北。
如果赤纬是负的,你的磁北向西到真正的北方,所以你的方向是#34;在左边"来自真北的(某种程度)!我们减去(绝对值!),因此:航向(磁性) - 赤纬=真北。
很好!我们实际上可以看到减去绝对值就像添加负度一样,所以我猜你总是可以将偏差添加到你的标题中。
那么对你来说,为什么和为什么(底线i' d add)。就像我说的那样,我只是交叉引用几页来得到答案(上面提到的还有this one,所以请仔细检查我的链接并验证我的答案:)