如何在 Here Navigation SDK 4.7.4 版中使用先前计算的路线?

问题描述

我为 Android 导航应用使用 Here SDK 4.7.4 版。因此,我们使用我们的门户网站计算路线,并希望使用我们在 Android 导航应用中计算的相同路线(使用门户网站通过调用此处的 REST API)。

我在网上搜索过这个,很遗憾没有找到任何有价值的东西。

目前,在 Here 地图导航示例中,它使用以下代码行计算路线:

Waypoint startWaypoint = new Waypoint(startGeoCoordinates);
Waypoint destinationWaypoint = new Waypoint(destinationGeoCoordinates);

List<Waypoint> waypoints = new ArrayList<>(Arrays.asList(startWaypoint,destinationWaypoint));

routingEngine.calculateRoute(waypoints,new TruckOptions(),calculateRouteCallback);

我想通过调用一个可以返回先前计算的路线的 Here SDK 方法来替换这些代码。当我们开始导航时,它应该遵循路线。

解决方法

您无法将从 REST API 调用收到的 Route 对象转换为 HERE SDK 可以理解的 Java 或 Kotlin 对象 - 因为 JavaScript/JSON 与 Java/Kotlin 不兼容,并且大多数重要的是,Route 对象无法在应用端从头开始生成,因为没有构造函数可公开访问。

您只能尝试使用您在门户网站上使用的相同参数再次创建路由。结果可能会有所不同,因为这是一个新的计算,时间和交通情况可能会改变路线。

更好的解决方案可能是与 HERE 支持团队交谈,并要求他们允许从给定的 RouteHandle 创建路由。路由句柄唯一标识路由,它只是路由的 String 表示。 REST API 可以生成句柄,然后 HERE SDK 可以使用它,理论上...