ТУТ Android SDK NavigateManager имитировать без карты не дает маневров - PullRequest
0 голосов
/ 27 апреля 2018

Я использую HERE Android SDK, встроенный в приложение QT, и пытаюсь смоделировать поворот за поворотом, но без отображения карты. В моем приложении нет Map или MapFragment, я использую MapEngine и NavigationManager напрямую. И я инициализирую движок карт в основном потоке пользовательского интерфейса, как это рекомендуется (не уверен, что это может быть проблемой здесь).

Я могу инициализировать движок карты, создать маршрут и успешно сбросить его. Однако, когда я использую NavigationManager для имитации маршрута, я вижу движение навигации (координаты в обновлении местоположения прогрессируют). Однако у меня есть ManeuverEventListeners и NewInstructionEventListeners, и они никогда не вызываются.

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

У меня тот же код, который отлично работает в примере приложения, но при работе в среде QT я никогда не получаю действительных расстояний или маневров. В ссылке на API указано, что getNextManeuver() вернет ноль (и получит расстояние, возвращающее MAX_INT), если следующий маневр еще не доступен. Что может быть причиной этого?

Допустимо ли запускать это в приложении без Map или MapFragment? Любые идеи, почему имитация NavigateManager будет действовать таким образом?

1 Ответ

0 голосов
/ 15 мая 2018

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

В моем случае, как только у меня есть рассчитанный маршрут, я запускаю mMapDataPrefetcher.fetchMapData(route,radius), а затем сразу же запускаю mNavigationManager.simulate(route,speed). Навигация немного затруднена, пока данные карты не загружены, но начинает реагировать сразу после завершения загрузки карты. В некоторых моих тестах загрузка может быть медленной, не знаю почему. Но при частом использовании картографические данные часто уже присутствуют, поэтому в этом случае работает лучше.

Я не уверен, что хороший радиус; Я пробовал 500 м, и звонок не удался; У меня сейчас 2000м.

Смотрите страницы здесь:

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

...