Как создать компас, стрелка которого всегда указывает на определенное положение GPS? (в Android)

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

Но я понятия не имею, как делать вычисления с положением GPS и данными датчика компаса.

Может ли кто-нибудь дать мне несколько советов, как начать работу или, может быть, есть пример того, как это сделать?


person Peter Fortuin    schedule 22.07.2011    source источник


Ответы (2)


Для этого вам нужно знать несколько вещей:

  • Куда вы хотите указать.
  • Там, где ты.
  • Какую картографическую проекцию вы используете (метры, градусы и т. д.)

Используйте Android LocationManager и зарегистрируйтесь для получения обновлений позиции. Когда появятся эти обновления, вам нужно извлечь положение и азимут (можно также использовать компас для азимута) и преобразовать их в формат карты, который вы используете. Обычно это будет сферический вариант Меркатора на картах Google.

Имея эту информацию, вы можете использовать тригонометрию для расчета угла между вами и отмеченным вами местоположением и использовать ее для рисования стрелки направления на карте или с данными пеленга, чтобы сказать вам, в какую сторону повернуть.

person ScouseChris    schedule 22.07.2011

Та же отправная точка, что и в ответе выше, но нет расчета тригонометрии. Просто вызовы существующих методов.

У вас есть

  • ваша фактическая позиция из onLocationChanged (метод класса Location)
  • координаты (широта/долгота), чтобы указать на

Ты можешь сейчас

  • создайте наложение на googleMaps и нарисуйте линию от вашего положения до точки, на которую нужно указать.

или если вы хотите более короткую линию (или стрелку)

  • «bearingTo()» (опять же из класса Location) дает вам направление, на которое нужно указать. Нарисуйте линию (или стрелку) и поверните ее в этом направлении
person Addi    schedule 21.09.2011