将谷歌地图北转换为磁北

时间:2012-11-22 11:10:56

标签: google-maps geodjango magnetometer degrees

我正在构建一个连接到Android应用程序的Django站点。 android部分是一个导航器,该站点允许使用图像构建自己的地图。

在构建这些地图的过程中,用户可以通过在谷歌地图实例上旋转地图图像来设置方位。

我正在使用css来旋转图像,所以0°是图像“原样”,360°是图像颠倒:所以北方是“向上”。

Android应用程序将不会使用gps系统,因此我必须在磁场上继续显示用户移动的地图旋转(用于检测用户的移动我有另一种方法,但这不是问题所必需的) ,我在this page发现磁北不是谷歌地图中显示的,我必须对值进行一些修正,但我不知道如何。

有人可以帮助我将图像的旋转度转换为北磁度吗?

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找磁偏角值。首先,您需要获取您的位置。由于您没有GPS,因此您将使用NETWORK_PROVIDER位置;这将足够接近你的赤纬值。

要了解旋转图像的距离和方向,您应该使用NOAA的this API

例如,如果您是@ 40.000,-105.250,则可以进行此API调用:
    http://www.ngdc.noaa.gov/geomag-web/calculators/calculateDeclination?lat1=40&lon1=-105.25&resultFormat=xml

你会得到这个回报:

<?xml version="1.0"?>
<maggridresult>
    <result>
        <date> 2012.82514 </date>
        <latitude> 40.00000 </latitude>
        <longitude> -105.25000 </longitude>
        <elevation units="km"> 0.00000 </elevation>
        <declination> 8.90399 </declination>
        <declination_sv> -8.01691 </declination_sv>
    </result>
</maggridresult>

所以你要旋转你的地图8.90399°

作为参考,here is a map显示近似的磁偏角值。