使用此处地图在受限道路上更改导航路线时,查找最近的出口



我在我的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变体中提供。

最新更新