我在我的android应用程序中使用here-maps android sdk高级版本进行地图导航。
我已经成功地在这里实现了地图导航。在导航时,如果我偏离了路线,则会进行重新路由计算,并显示到指定目的地的新路线,但如果我经过一条受限制的道路,则此处的地图只显示重新路由,这是真的,因为从受限制的路径,它无法计算路线。
但有什么方法可以让我在这里的地图android上显示限制道路的最近出口,以获得前往目的地的新路线吗?现在,在受限制的道路上,没有显示路线。
@Override
public void onRouteUpdated(@NonNull Route route) {
Log.d(TAG, "onRouteUpdated: called.");
//remake new route
map.removeMapObject(mapRoute);
// create a new MapRoute object
mapRoute = new MapRoute(route);
// display new route on the map
map.addMapObject(mapRoute);
}
在受限道路上行驶时,上述代码无效。尝试使用侦听器作为:
private NavigationManager.RerouteListener rerouteListener = new NavigationManager.RerouteListener() {
@Override
public void onRerouteBegin() {
super.onRerouteBegin();
Toast.makeText(activity, "reRouteListener begin...", Toast.LENGTH_SHORT).show();
}
@Override
public void onRerouteEnd(@NonNull RouteResult routeResult, RoutingError routingError) {
super.onRerouteEnd(routeResult, routingError);
StringBuilder stringBuilder = new StringBuilder();
for (RouteResult.ViolatedOption violatedOption: routeResult.getViolatedOptions()) {
stringBuilder.append(violatedOption.toString());
}
Toast.makeText(activity, "routeresult end: " + stringBuilder, Toast.LENGTH_SHORT).show();
}
};
有时会得到违反的选项START_DIRECTION,有时什么都没有。但仍然坚持如何在限制道路上实现最近的路线。
[更新]:我尝试了@Datasun的建议。但我在从限制道路启动新路线时(从高度限制道路尝试(得到了无效的路线。我的问题是,在导航时,如果用户走到受限制的道路,路线就会消失,并显示路线正在重新计算。我想向用户显示离限制道路最近的出口,或者他们在限制道路上的一些通知。现在我被违反了START_DIRECTION的选项,但有时在受限制的道路上什么都没有。我错过了什么?
总之,在Navigate SDK中,该问题不再可复制。
一般来说,HERE高级SDK(3.x(被新的4.x SDK变体所取代,高级SDK将保持到2022年12月31日,只有关键的错误修复,没有功能开发/增强。
鼓励HERE Premium SDK(3.x(的当前用户在2022年12月31日之前根据授权用例迁移到Lite、Explore或Navigate HERE SDK(4.x(变体。大多数高级SDK功能已经在新的SDK变体中提供。