我们正在将此处的Android项目转换为将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 上绘制多个航路点,这也是在路线上绘制最大航路点的限制。
答案 0 :(得分:2)
这是一个不同的SDK。看看feature list,您会发现支持方向。因此,您必须查看documentation才能知道它是如何工作的。
最终,您必须执行以下操作:
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());
}
}
});
答案 1 :(得分:1)
新的SDK 4.x(Lite)与经典的Starter SDK相比,具有一些不同的概念和功能,因此替代品并不是全部。
对于路由,情况非常相似,您可以在此处查看github示例以了解具体情况:
简而言之:
RouteEngine仍然存在,但是在calculateRoute方法中,您传递了一系列航点(第一个是起点,最后一个是终点,其间的所有点都是中途停留点或直通航点)。