Я пишу свое первое приложение для Android, основанное на местоположении, но запутался в некоторых API-интерфейсах службы GPS. Вот несколько вопросов, которые у меня есть:
1) Чтобы узнать свое текущее местоположение, я вызвал requestLocationUpdates () со слушателем в методе onCreate () одного действия. Но что происходит, когда начинается другое действие, а текущее становится невидимым? Остановится ли обновление местоположения по GPS? Если да, как мне оставить его включенным после переключения деятельности?
2) насколько точен Location.getSpeed ()? Как это вычисляется? Может ли он отличить поездку на велосипеде от пешей прогулки?
3) не особо вопрос про андроид. Как рассчитать координаты места, скажем, в 100 метрах от моего текущего местоположения?
4) Чтобы остановить GPS, мне нужно только удалить всех слушателей, которые были зарегистрированы в locationmanager?
Большое спасибо!
Ответ 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, которую, я думаю, не составит труда перенести:
Ответ 3 · Bob
Тем, кто хочет создать приложение GPS на Android, которое ИЗМЕРИТ СКОРОСТЬ, возможно, стоит проверить ... http://code.google.com/p/krvarma-android-samples/source/browse/#svn%2Ftrunk%2FSpeedDemo%253Fclosedstate%253Dclosed / а>