0

我们正在将 Android Project Here Map Android Starter SDK转换为Lite Edition。我想在路线上显示多个航点。

对于 Starter SDK,我们使用RoutePlan来绘制多个航点。但在精简版中,我无法找到 RoutePlan。有关更多信息,请查找以下 Android Starter SDK代码片段:

    val routePlan = RoutePlan()
    val routeOptions = RouteOptions()
    routeOptions.transportMode = RouteOptions.TransportMode.CAR
    routeOptions.routeType = RouteOptions.Type.FASTEST

    routePlan.routeOptions = routeOptions

   for (routeLatLang in tripRouteData) { 
                try {
                    routePlan.addWaypoint(GeoCoordinate(lat.toDouble(), longg.toDouble()))
                } catch (e: Exception) {
                    e.printStackTrace()
                }
    }

    val error = routeManager.calculateRoute(routePlan, routeManagerListener)
    if (error != RouteManager.Error.NONE) {
        Toast.makeText(activity,
                "Route calculation failed with: " + error.toString(), Toast.LENGTH_SHORT)
                .show()
    }

还可以找到以下Lite Edition SDK 的代码片段:

    val waypoint1 = Waypoint(latitude1,longitude1)
    val waypoint2 = Waypoint(latitude2,longitude2)
    val waypoints = java.util.ArrayList(Arrays.asList(Waypoint(startGeoCoordinates),
            waypoint1, waypoint2, Waypoint(destinationGeoCoordinates)))

那么,我们如何在 Here Map Lite Edition上绘制多个航点,以及在路线上绘制的最大航点的限制是什么。

4

2 回答 2

2

这是一个不同的 SDK。查看功能列表,您会发现支持方向。因此,您必须查看文档以了解其工作原理。

最终,您将不得不执行以下操作:

routingEngine.calculateRoute(
        waypoints,
        new CarOptions(),
        new CalculateRouteCallback() {
            @Override
            public void onRouteCalculated(@Nullable RoutingError routingError, @Nullable List<Route> routes) {
                if (routingError == null) {
                    Route route = routes.get(0);
                    showRouteDetails(route);
                    showRouteOnMap(route);
                } else {
                    showDialog("Error while calculating a route:", routingError.toString());
                }
            }
        });
于 2019-11-17T10:57:36.783 回答
1

新的 SDK 4.x (Lite) 与经典的 Starter SDK 有一些不同的概念和功能,所以它不是一个完全的替代品。

对于路由,情况非常相似,您可以在此处查看 github 示例以了解您的情况:

https://github.com/heremaps/here-sdk-examples/blob/master/examples/android/Routing/app/src/main/java/com/here/routing/RoutingExample.java

简而言之:

RouteEngine 仍然存在,但是在 calculateRoute 方法中,您传入了一个航点列表(第一个是开始,最后一个是结束,中间的所有内容都是中途停留或经过的航点)。

请参阅:https ://developer.here.com/documentation/android-sdk/api_reference/com/here/sdk/routing/RoutingEngine.html#calculateRoute-java.util.List-com.here.sdk.routing.CarOptions- com.here.sdk.routing.CalculateRouteCallback-

于 2019-11-18T08:47:25.510 回答