Mapbox NavigationViewOptions и NavigationLauncherOptions - PullRequest
0 голосов
/ 01 апреля 2020

Я новичок в Mapbox и уже несколько дней пытаюсь выяснить, как я могу добавить progressChangeListener в мои NavigationLauncherOptions.

Mapbox.getInstance (this, getString (R.string.access_token) ); setContentView (R.layout.activity_main);

    Point originPoint = Point.fromLngLat(-80.311641,25.910195);
    Point destinationPoint = Point.fromLngLat(-80.312159, 25.911922);

    NavigationRoute.builder(MainActivity.this)
            .accessToken(Mapbox.getAccessToken())
            .origin(originPoint)
            .destination(destinationPoint)
            .build()
            .getRoute(new Callback<DirectionsResponse>() {
                @Override
                public void onResponse(Call<DirectionsResponse> call, Response<DirectionsResponse> response) {
                    currentRoute = response.body().routes().get(0);
                    NavigationLauncherOptions options = NavigationLauncherOptions.builder()
                            .directionsRoute(currentRoute)
                            .shouldSimulateRoute(true)
                            .build();
                    NavigationLauncher.startNavigation(MainActivity.this, options);

                    NavigationViewOptions.Builder optionsNavigate = NavigationViewOptions.builder();
                    optionsNavigate.progressChangeListener(new ProgressChangeListener() {
                        @Override
                        public void onProgressChange(Location location, RouteProgress routeProgress) {
                            Log.v("RES", String.valueOf(routeProgress.currentState()));
                            if (routeProgress.currentState().equals(RouteProgressState.ROUTE_ARRIVED)) {
                                // Execute arrival logic
                            }
                        }
                    });
                }

                @Override
                public void onFailure(Call<DirectionsResponse> call, Throwable throwable) {
                }
            });

Я пытаюсь прикрепить код, но он не работает. Любая помощь очень ценится. Спасибо

1 Ответ

1 голос
/ 01 апреля 2020

Как отмечалось здесь в документации о ходе выполнения маршрута Mapbox для SDK пользовательского интерфейса навигации:

Этот прослушиватель доступен только в том случае, если вы добавляете NavigationView к Activity или Fragment макет XML через NavigationViewOptions. Вы не можете добавить их к NavigationLauncherOptions.

Поэтому я бы рекомендовал добавить NavigationView через NavigationViewOptions вместо NavigationLauncherOptions и следовать подробным указаниям в Mapbox маршрутная документация прогресса , если вам нужен доступ к слушателям прогресса. Пример приложения mapbox/mapbox-navigation-android также содержит несколько полезных примеров.

...