Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Android: различные вопросы о GPS

Автор вопроса: weiОтветов: 3

Я пишу свое первое приложение для Android, основанное на местоположении, но запутался в некоторых API-интерфейсах службы GPS. Вот несколько вопросов, которые у меня есть:

1) Чтобы узнать свое текущее местоположение, я вызвал requestLocationUpdates () со слушателем в методе onCreate () одного действия. Но что происходит, когда начинается другое действие, а текущее становится невидимым? Остановится ли обновление местоположения по GPS? Если да, как мне оставить его включенным после переключения деятельности?

2) насколько точен Location.getSpeed ​​()? Как это вычисляется? Может ли он отличить поездку на велосипеде от пешей прогулки?

3) не особо вопрос про андроид. Как рассчитать координаты места, скажем, в 100 метрах от моего текущего местоположения?

4) Чтобы остановить GPS, мне нужно только удалить всех слушателей, которые были зарегистрированы в locationmanager?

Большое спасибо!

androidgps

Ответы

Ответ 1 · рейтинг 2 · Daniel Vassallo

Это не будет исчерпывающий ответ, так как у меня нет опыта разработки Android, но я просто хотел добавить свои мысли по вашим вопросам GPS:

Вопрос 2: Обычно скорость рассчитывается оборудованием GPS, просто путем деления изменения расстояния на изменение во времени. (См. комментарии ниже) Скорость обычно достаточно точна, так как до тех пор, пока есть покрытие GPS, и вы определенно сможете определить, идет ли кто-то пешком или на велосипеде. Вы даже должны уметь различать нормальную ходьбу (6 км / ч) и медленный бег трусцой (12 км / ч).

Вопрос 3: На расстоянии 100 м от текущего местоположения существует бесконечное количество местоположений. Только если вы добавите пеленг, вы сможете определить точку назначения. Формула следующая (Источник):

лат 2 = asin (sin (lat 1) * cos (d / R) + cos (lat 1) * sin (d / R ) * cos (θ))
lon 2 = lon 1 + atan2 (sin (θ) * sin (d / R) * cos (lat 1), cos (d / R) −sin (lat 1) * sin (lat 2))

d / R - угловое расстояние (в радианах), где d - пройденное расстояние, а R - радиус Земли.

Возможно, вы захотите проверить следующую публикацию Stack Overflow для реализации вышеупомянутого JavaScript, которую, я думаю, не составит труда перенести:

Ответ 2 · рейтинг 2 · Maciek Sawicki

Не совсем ответ на Ваш вопрос, но он может быть полезен для проблемы, которую Вы, вероятно, пытаетесь решить: http://en.wikipedia.org/wiki/Geohash

Ответ 3 · Bob

Тем, кто хочет создать приложение GPS на Android, которое ИЗМЕРИТ СКОРОСТЬ, возможно, стоит проверить ... http://code.google.com/p/krvarma-android-samples/source/browse/#svn%2Ftrunk%2FSpeedDemo%253Fclosedstate%253Dclosed / а>

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы