Android HERE SDK Пошаговая навигация неправильные маневры

Я разрабатываю навигацию для Android на основе HERE SDK и HERE Mobile SDK UI Kit. При вызове HERE API для создания маршрута я использую 128 путевых точек - ПЕРВАЯ и ПОСЛЕДНЯЯ точки относятся к типу STOP_WAYPOINT, ВСЕ ДРУГИЕ относятся к типу VIA_WAYPOINT (сквозная согласно официальной документации). Проведя несколько тестов на реальном вождении, я заметил, что если я выйду из запланированного маршрута навигации, HERE SDK фактически начнет показывать маневры, ведущие к концу маршрута (последняя путевая точка из типа STOP_WAYPOINT), вместо того, чтобы вернуться к запланированный маршрут навигации, а точнее - до последней точки VIA_WAYPOINT, которая не была "пройдена" во время движения. Если я вернусь к маршруту, SDK продолжит показывать неправильные маневры, несмотря на то, что я еду по правильному запланированному маршруту для навигации. Есть ли шанс исправить это странное поведение?


person Bozhidar Petrov    schedule 08.05.2020    source источник
comment
Вы нашли для этого какое-нибудь решение? Я столкнулся с таким же поведением в Here SDK 4.7. Спасибо!   -  person H_H    schedule 21.06.2021
comment
@H_H Решение не найдено ... Но обходной путь, который мы сделали с моим коллегой, заключался в том, чтобы сгенерировать и установить совершенно новый маршрут во время вождения / без остановки навигации / (у нас был сторонний алгоритм Python, который нам предоставили наши коллеги-математики, давая нам всегда новые маршруты перед вами, но это было действительно сложно, пока мы не заставили его работать правильно, я не могу поделиться им из-за лицензионных прав ...). Итак, попробуйте вызвать Here API для нового маршрута, когда он появится, в нем уже есть маневры, связанные с ним, поэтому вы можете установить его на карте / маршрутизаторе, и он начнет правильно перемещаться по вам. :)   -  person Bozhidar Petrov    schedule 21.06.2021


Ответы (1)


Это вариант использования перенаправления, и существуют разные сценарии, как лучше всего с этим справиться. Один из вариантов - прослушать, если пользователь покинул маршрут. Как только это произойдет, рассчитайте новый маршрут. Теперь у вас есть несколько вариантов, которые могут зависеть от дизайна вашего приложения:

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

Я не знаю точного поведения HERE SDK для Android (Premium Edition), но звучит неплохо, если снова перенаправить к месту назначения, игнорируя пройденные путевые точки).

person Datasun    schedule 11.05.2020
comment
Мы не хотим менять запланированный маршрут для навигации. Только для прохождения всех точек VIA_WAYPOINT с правильными маневрами и, если они оставлены и возвращены обратно на запланированный маршрут, для продолжения движения с уже загруженными маневрами (маневры предоставляются вместе с маршрутом ЗДЕСЬ SDK при установке его на карту) . Я понятия не имею, почему, если водитель покидает запланированный маршрут, маневры начинают указывать на последнюю точку, а все остальное, загруженное до сих пор, игнорируется SDK. - person Bozhidar Petrov; 11.05.2020
comment
Я думаю, вы должны прослушать событие отклонения маршрута (developer.here.com/documentation/android-premium/3.15/). Может, код можно поделится? Если вы не обрабатываете это событие, я предполагаю, что сохранение маршрута по умолчанию может привести к неожиданным результатам, как только пользователь покинет этот маршрут (даже если он вернется позже) ...? - person Datasun; 11.05.2020