Текущее местоположение не обновляется в реальном времени при попытке навигации с использованием Mapbox для android - PullRequest
0 голосов
/ 04 августа 2020

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

Вот код:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mapView = findViewById(R.id.mapView);

    startNavigation = findViewById(R.id.startNavigation);

    mapView.onCreate(savedInstanceState);
    mapView.getMapAsync(this);
    startNavigation.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            pickNavigationDialog(); 
        }
    });
}

public void pickNavigationDialog() {
    new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.myDialog))
            .setTitle("Choose function")
            .setMessage("Would you like to simulate navigation?")     
            .setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    try {
                        if (originPosition != null && destinationPosition != null) {
                            NavigationLauncherOptions options = NavigationLauncherOptions.builder()
                                    .origin(originPosition)
                                    .destination(destinationPosition)
                                    .shouldSimulateRoute(false) // Does not simulate navigation.
                                    .build();
                            if (destinationPosition != null) {
                                NavigationLauncher.startNavigation(MainActivity.this, options); //Transitions to an other activity in order to start navigation.
                            }
                        } else {
                            Toast.makeText(getApplicationContext(), "Destination is not set.", Toast.LENGTH_SHORT).show();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            })
            .setIcon(android.R.drawable.ic_dialog_alert)
            .show();
}

По сути, нам нужно изменить этот код, чтобы иметь возможность обновить текущее местоположение в режиме GPS.

...