首页 > 解决方案 > HERE SDK 中的流量路由

问题描述

我正在使用以下代码使用 Premium Android SDK 创建路由:

RouteOptions ro = new RouteOptions();
ro.setTransportMode(RouteOptions.TransportMode.CAR);
ro.setRouteType(RouteOptions.Type.BALANCED);
ro.setRouteCount(1);


RoutePlan rp = new RoutePlan();
// start route on current position
rp.setRouteOptions(ro);
rp.addWaypoint(new RouteWaypoint(currentGeoCoordinate));
rp.addWaypoint(new RouteWaypoint(stopGeoCordinate));

DynamicPenalty dp = new DynamicPenalty();
dp.setTrafficPenaltyMode(TrafficPenaltyMode.OPTIMAL);
stopGeoCordinate = new GeoCoordinate(trip.getLatitude(), trip.getLongitude());


CoreRouter rm = new CoreRouter();
rm.setDynamicPenalty(dp);

rm.calculateRoute(rp, new CoreRouter.Listener() { ...

使用 Android Studio Network Profiler,我看到这个单一的请求导致大约 30 次相同的后端 API 调用以下 URL:

https://v154-105-30-8.route.hybrid.api.here.com/rt ?.....

这是预期的行为,因此单个流量路由请求会导致 30 个事务,还是我在做一些根本不正确的事情?

标签: here-api

解决方案


作为后续,SDK 团队承认 SDK 3.14(可能更早版本)存在错误。

当 NavigationManager 设置为 DYNAMIC 流量路由时,如果路由稍微偏离路径,它会立即调用服务器进行重新路由。在我创建的示例中,0.5 英里的行程导致对服务器路由 API 的 70 次调用。

SDK 团队表示这只会在 5 秒后发生,但无法正常工作。3.15 应该解决这个问题。

因此,如果有人在 NavigationManager 和 DYNAMIC 路由中使用 3.14(我不确定早期版本),请检查您的事务计数,因为它可能比预期的要高得多。


推荐阅读