Навигация по Mapbox выключена Обнаружение маршрута не работает

Класс должен существовать под WEB-INF / classes или находиться внутри файла .jar в разделе WEB-INF / lib. Убедитесь, что он делает.

0
задан Troy Berg 16 January 2019 в 17:00
поделиться

2 ответа

Я выбрал свой собственный offRouteEngine. Я сохранил оригинал, и сослаться на него в своем. Код:

       MapboxNavigation mbn = navigationView.retrieveMapboxNavigation();
        orEngine = (OffRouteDetector)mbn.getOffRouteEngine();
        mbn.setOffRouteEngine(new OffRouteDetector() {
            @Override
            public boolean isUserOffRoute(Location location, RouteProgress routeProgress, MapboxNavigationOptions options) {
                Boolean isOffRoute = orEngine.isUserOffRoute(location, routeProgress, options);
                // User will never be off-route
                return isOffRoute;
            }
            public boolean isUserOffRouteWith(NavigationStatus status) {
                return orEngine.isUserOffRouteWith(status) || status.getRouteState() == RouteState.INITIALIZED;
            }
        });

В этом коде я считаю состояние «ИНИЦИАЛИЗИРОВАННЫЙ» как вне маршрута. Поскольку я не перенаправляю, а вместо этого показываю сообщение, я думаю, что это должно сработать нормально.

Пожалуйста, дайте мне знать, если вы обнаружите какие-либо проблемы с этим методом, и спасибо за вашу помощь!

0
ответ дан Troy Berg 16 January 2019 в 17:00
поделиться

@Troy Berg Позвольте мне в течение короткой секунды объяснить, как маршрут, следующий за кодом, работает внутренне, когда загружается новый маршрут.

При загрузке нового маршрута, если маршрут json действителен, MapboxNavigator запустится в состоянии INITIALIZED. Оттуда он будет пытаться получить уверенность в том, что переданные местоположения GPS на самом деле являются тем местом, где находится пользователь. Чтобы установить это доверие, необходимо получить как минимум несколько обновлений местоположения, которые должны быть последовательно согласованы как во времени, так и в пространстве. Пока он находится в процессе установления этого доверия, он сообщит о состоянии INITIALIZED.

После того, как доверие пользователей к текущему потоку обновлений местоположения было установлено, MapboxNavigator попытается измерить продвижение пользователя по текущему загруженному маршруту. Если обнаруживается, что местоположение пользователя необоснованно далеко от самого маршрута, состояние переходит в состояние OFFROUTE.

Если текущее местоположение пользователя находится в пределах разумного расстояния от загруженного в данный момент маршрута, но недостаточно близко, чтобы считаться находящимся на маршруте (TRACKING), мы продолжим возвращать состояние INITIALIZED и подождать, пока пользователь сделает их путь к маршруту. Мы называем это загоном. Проведение полетов позволяет пользователю, например, на его / ее подъездной дороге или на парковке магазина загружать маршрут, а не сразу помечать как OFFROUTE. Во время проведения собеседования, если пользователь постоянно продвигается дальше от маршрута, он в конечном итоге будет отмечен OFFROUTE.

0
ответ дан Kevin Kreiser 16 January 2019 в 17:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: