Преобразование севера Google Maps в магнитный север

Я создаю сайт Django, подключенный к приложению для Android. Android-часть представляет собой навигатор, а сайт позволяет создавать собственные карты с использованием изображений.

При построении этих карт пользователь может установить азимут посредством вращения изображения карты на экземпляре карт Google.

Я использую css для поворота изображения, поэтому 0 ° — это изображение «как есть», а 360 ° — это изображение вверх ногами: поэтому север «вверху».

Приложение для Android не будет использовать систему GPS, поэтому мне нужно использовать магнитное поле, чтобы показать, как карта вращается при движениях пользователя (для обнаружения движения пользователя у меня есть другой метод, но это не обязательно для вопроса), и я обнаружил на этой странице, что магнитный север не отображается на картах Google, и что мне нужно сделать некоторые поправки к значениям, но я не знаю как.

Кто-нибудь может помочь мне изменить угол поворота изображений на северные магнитные градусы?


person Marco Fedele    schedule 22.11.2012    source источник


Ответы (1)


Похоже, вы ищете значения магнитного склонения. Сначала вам нужно будет получить свое местоположение. Поскольку у вас нет GPS, вы будете использовать местоположение NETWORK_PROVIDER; это будет достаточно близко, чтобы получить значение склонения.

Чтобы узнать, как далеко и в каком направлении следует поворачивать ваши изображения, вы должны использовать что-то вроде этот API от NOAA.

Например, если ваш адрес @ 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°.

Для справки: вот карта с приблизительными значениями магнитного склонения.

person davehale23    schedule 29.11.2012
comment
Хорошо, очень интересный сервис. Только один вопрос, могу ли я использовать градусы как углы, добавляя 8,9° к значению, которое я нашел с помощью своей системы, или мне нужно сделать еще один шаг преобразования? - person Marco Fedele; 02.12.2012
comment
Степени одинаковые. На компасе 360°, и у вас есть вращение на 360° на вашем изображении. - person davehale23; 02.12.2012
comment
Справочная информация о магнитном склонении: ngdc.noaa.gov/geomag/declination.shtml - person Lance Kind; 16.07.2020