При перенаправлении постоянные идентификаторы отсутствуют (ЗДЕСЬ, Android Premium SDK) - PullRequest
0 голосов
/ 13 мая 2019

Я использую здесь Android Premium SDK, чтобы получить маршрут из онлайн-интерфейса, используя CoreRouter :: calculateRoute (). Чтобы расширить маршрут дополнительными данными, я использую постоянные идентификаторы ссылок маршрута, чтобы запросить HERE Platform Data Extension (PDE). Это прерывается, когда необходим повторный маршрут, поскольку обновленный маршрут не содержит постоянных идентификаторов.

Исходный маршрут содержит постоянный идентификатор каждой ссылки, к которому я обращаюсь следующим образом:

fun handleRoute(route: Route) {
  for (item in route.routeElements.elements) {
    val pid = item.roadElement.permanentDirectedLinkId
  }
}

Постоянные идентификаторы имеют тип Long и могут быть положительными / отрицательными в зависимости от направления движения, например -1199076058.

Когда водитель отклоняется от рассчитанного маршрута (например, не следует предложенному маневру), новый маршрут рассчитывается автоматически и принимается через

NavigationManagerEventListener::onRouteUpdated(Route)

Для этого обновленного маршрута все постоянные идентификаторы равны 0. То же самое происходит при использовании RerouteListener::onRerouteEnd(RouteResut) вместо этого, и также не изменяется, когда я запрашиваю roadElement.permanentLinkId (без Directed). Доступны только локальные идентификаторы (roadElement.identifier).

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

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

...