Конвертировать Google Maps с севера на магнитный север
Я создаю сайт Django, связанный с приложением для Android. Android-часть - это навигатор, а сайт позволяет создавать собственные карты с использованием изображений.
Во время построения этих карт пользователь может установить ориентацию путем поворота изображения карты на экземпляре карт Google.
Я использую css для поворота изображения, поэтому 0° - это изображение "как есть", а 360° - это изображение вверх ногами, поэтому север - "вверх".
Приложение для Android не будет использовать систему GPS, поэтому я должен включить магнитное поле, чтобы показать карту, вращающуюся на движениях пользователя (для определения движения пользователя у меня есть другой метод, но это не обязательно для вопроса), и я обнаружил на этой странице, что магнитный север - это не то, что показано на картах Google, и что я должен внести некоторые поправки в значения, но я не знаю как.
Кто-нибудь может помочь мне сместить градус поворота изображения на северный магнитный градус?
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°
Для справки, вот карта, показывающая приблизительные значения магнитного склонения.