SDK Mapbox Navigation, проблема с добавлением путевых точек в NavigationRoute.builder () - PullRequest
1 голос
/ 06 марта 2019

В настоящее время я пытаюсь создать навигационный маршрут в Android SDK для навигации, предоставляемый mapbox. Проблема начинается при добавлении в запрос нескольких путевых точек. (запрос ниже возвращает ответ и рисует маршрут на карте)

NavigationRoute.builder()
            .accessToken(Mapbox.getAccessToken())
            .origin(start)
            .destination(end)
            .alternatives(false)
            .build()
            .getRoute(new Callback<DirectionsResponse>() {
                @Override
                public void onResponse(@NonNull Call<DirectionsResponse> call, @NonNull Response<DirectionsResponse> response) {

                    if (response.isSuccessful()) {

                        try {
                            assert response.body() != null;
                            routeodfgoh = response.body().routes().get(0);

                            if (navigationMapRoute != null) {
                                navigationMapRoute.removeRoute();
                            } else {
                                navigationMapRoute = new NavigationMapRoute(null, mapView, map);
                            }

                            //how to draw the map think map matching is work
                            navigationMapRoute.addRoute(routeodfgoh);

                        } catch (Exception ex) {
                            Toast.makeText(MainActivity.this, ex.toString(), Toast.LENGTH_LONG);
                        }

                    }
                }

                @Override
                public void onFailure(Call<DirectionsResponse> call, Throwable t) {

                }
            });

Однако приложение требует, чтобы в некоторых запросах было добавлено более одной путевой точки. после долгих поисков я нашел mapbox-navigation-android и добавил путевые точки , которые привели к приведенному ниже коду. однако запрос никогда не возвращает ответ.

 NavigationRoute.Builder builder = NavigationRoute.builder()
            .accessToken(Mapbox.getAccessToken())
            .origin(start)
            .destination(end);

    for (Point waypoint : coords) {
        builder.addWaypoint(waypoint);
    }

    builder.build()
            .getRoute(new Callback<DirectionsResponse>() {
        @Override
        public void onResponse(@NonNull Call<DirectionsResponse> call, @NonNull Response<DirectionsResponse> response) {

           if (response.isSuccessful()) {

                try {
                    assert response.body() != null;
                    routeodfgoh = response.body().routes().get(0);

                    if (navigationMapRoute != null) {
                        navigationMapRoute.removeRoute();
                    } else {
                        navigationMapRoute = new NavigationMapRoute(null, mapView, map);
                    }

                    //how to draw the map think map matching is work
                    navigationMapRoute.addRoute(routeodfgoh);

                } catch (Exception ex) {
                    Toast.makeText(MainActivity.this, ex.toString(), Toast.LENGTH_LONG);
                }

            }
        }

        @Override
        public void onFailure(Call<DirectionsResponse> call, Throwable t) {

        }
    });

любые идеи относительно того, почему я не получаю ответ, были бы великолепны.

1 Ответ

3 голосов
/ 06 марта 2019

Профиль по умолчанию - PROFILE_DRIVING_TRAFFIC, который имеет ограничение в 3 координаты. Если вы обновите его до PROFILE_DRIVING, используя .profile(DirectionsCriteria.PROFILE_DRIVING), это должно решить проблему ограничения координат.

...