Tokeny trasy

Przy wyznaczaniu najlepszej trasy na wspólne przejazdy, najszybsza trasa nie zawsze musi być najlepszą opcją. Możesz dostosować trasę. Interfejs Routes Preferred API umożliwia dostosowanie trasy przez określenie jej celu za pomocą metody ComputeCustomRoutes.

Gdy tworzysz trasę niestandardową, preferowany interfejs Routes Preferred API generuje token trasy. Następnie możesz przekazać token do pakietu Navigation SDK na Androida i pobrać trasę niestandardową.

Więcej informacji o tworzeniu trasy niestandardowej znajdziesz w artykule o tworzeniu tras niestandardowych.

Pobieram trasę niestandardową

Możesz pobrać trasę niestandardową, przekazując token trasy do pakietu Navigation SDK na Androida za pomocą metody Navigator.setDestinations.

setDestinations(List<Waypoint> destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);

Trasa niestandardowa zastępuje wszystkie wcześniej ustawione miejsca docelowe. Wykorzystuje lokalizację, z której kierowca korzysta, oraz warunki na drodze i natężenie ruchu.

Funkcja Navigator.setDestinations przyjmuje te parametry:

ParametrOpis
miejsca docelowe Nowa lista miejsc docelowych do ustawienia.
customRoutesOptions Opcje, które będą używane do pobierania wstępnie obliczonej trasy na podstawie tokena zwróconego przez preferowany interfejs API tras.
displayOptions Opcje, które zostaną użyte do wyświetlenia trasy.

Metoda Navigator.setDestinations zwraca stan żądania. Jeśli zostanie znaleziona trasa z lokalizacji użytkownika do danego miejsca docelowego, funkcja zwróci wartość RouteStatus.OK.

Przykład

Poniższy przykładowy kod pokazuje, jak pobrać trasę niestandardową.

ArrayList <Waypoint> destinations = Lists.newArrayList();
Waypoint waypoint1 =
   Waypoint.builder()
      .setLatLng(10, 20)
      .setTitle("title")
      .setVehicleStopover(true)
      .build();
destinations.add(waypoint1);
Waypoint waypoint2 =
   Waypoint.builder()
      .setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
      .setTitle("title")
      .setVehicleStopover(true)
       .build()
destinations.add(waypoint2);

String routeToken = "route token returned by RoutesPreferred API";

CustomRoutesOptions customRoutesOptions =
   CustomRoutesOptions.builder()
      .setRouteToken(routeToken)
      .setTravelMode(CustomRoutesOptions.TravelMode.TWO_WHEELER)
      .build();

// Existing flow to get a Navigator.
NavigationApi.getNavigator(...);
// Existing flow for requesting routes.
ListenableResultFuture<RouteStatus> routeStatusFuture =
          navigator.setDestinations(destinations, customRoutesOptions);

// Or with display options.
DisplayOptions displayOptions = new DisplayOptions();

ListenableResultFuture<RouteStatus> routeStatusFuture =
          navigator.setDestinations(destinations, customRoutesOptions, displayOptions);