Как определить, когда достигнута путевая точка карты

#java #android #navigation

#java #Android #навигация

Вопрос:

У меня есть навигационная программа, и если есть 4 путевые точки, я хотел бы выделить в списке сведений, на какой части вы находитесь в данный момент, а также я мог бы показать расстояние до следующей путевой точки и общее расстояние.

Итак, у вас может быть:

  1. Идите направо по главной улице, 1,3 мили
  2. На Бродвее поверните налево, .5 миль
  3. Поверните налево на бульвар Конкорд, в 2 милях

Но как мне определить, когда телефон запускается в другой путевой точке.

Комментарии:

1. Используйте функцию Location.distanceTo() и алгоритм нахождения ближайшей пары точек

2. @Reno — В конце концов, это то, с чем я в основном пошел.

Ответ №1:

Используя LocationManager, вы можете установить несколько способов обновления конкретной программы. Используйте LocationManager.addProximityAlert() для получения предупреждения, если вы находитесь на определенном расстоянии от путевой точки. Дополнительно вы можете использовать Location классы, например, для определения расстояния waypoint.distanceTo(currentLocation); .

Комментарии:

1. Спасибо. Похоже, это будет именно то, что я хочу.

Ответ №2:

Решение, которое я собираюсь использовать, заключается в использовании пассивного провайдера, чтобы, если используется навигатор, мое приложение все равно знало, где находится пользователь.

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

addProximityAlert затруднял определение того, на какую путевую точку перейти, и это работало не так хорошо, как я надеялся, и поскольку мне нужно знать, где находится пользователь, чтобы обновить свой маркер, не было причин не добавлять некоторые вычисления одновременно.