2016-04-25 2 views
1

В андроиде мы получаем показания с магнитного датчика и определяем направление. Но мы знаем, что магнитный север не соответствует северу. В результате происходит отклонение от истинного севера. Опять же, это отклонение не одинаково для всех мест. Также там же отклонение меняется со временем, когда магнитный север движется со скоростью 40 км/год с настоящего севера. Таким образом, данные, которые мы получаем от датчика, не могут быть использованы без какой-либо коррекции.Получение правильного направления от магнитного датчика Android

Теперь у меня есть две точки A, B с их широтой, долготой, высотой, как показано ниже. Мне нужно определить правильный вектор. Поскольку, моя позиция A и мое направление от датчика неверно, я не могу получить правильный вектор X & Y от A до B. Есть ли способ получить правильный вектор, фильтруя данные магнитного датчика?

http://i.stack.imgur.com/7VAQ2.png

ответ

0

Существует в андроида, который дает вам отклонение от истинного севера на текущей позиции в текущий момент GeomagneticField. Таким образом, вы можете получить отклонение от истинного севера с ниже код

gmf = new GeomagneticField((float) ur_Latitude(), 
             (float) ur_Longitude(), 
             (float) ur_Altitude(), 
             System.currentTimeMillis()); 
      myAngle = Math.toRadians(-gmf.getDeclination()); 

Теперь вы можете повернуть вектор в Y-оси, проходящей через этот угол myAngle

+0

Позвольте мне увидеть, если он работает. Кстати, как я могу вращать вектор по оси Y? –

+0

Вам нужно задать отдельный вопрос, если вы хотите узнать что-нибудь еще @ShohelRayhan –