我需要为我的应用程序构建指南针。
通过阅读文档,似乎有两种合理的方法可以做到这一点:
解决该问题的任何建议将不胜感激。
最佳答案
看起来mob1lejunkie已经解决了这个问题,但仅供将来引用,我要提一提,这里的问题是magnetic declination(磁北与真北之间的差异)。您可以尝试an online model from NOAA来了解您所在地区的差异。
Android包含一个称为GeomagneticField的模型,该模型可用于在给定纬度,经度和海拔高度的情况下计算近似磁偏角。因此,我认为您需要做的事才能计算出真正的北方,就是从Sensor.TYPE_ORIENTATION读取azimuth value,然后将其添加到GeomagneticField.getDeclination()中。
关于android - 指南针精度困境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2769484/