Tokeny trasy

Gdy wybierasz najlepszą trasę w ramach wspólnych przejazdów, najszybsza trasa może nie być najlepszą opcją. Możesz dostosować trasę. Interfejs Routes Preferred API pozwala dostosować trasę przez określenie jej celu za pomocą metody ComputeCustomRoutes.

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

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

Pobieranie trasy niestandardowej

Możesz pobrać trasę niestandardową, przekazując token trasy do pakietu SDK nawigacji 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. Uwzględnia lokalizację początkową kierowcy oraz warunki na drodze i natężenie ruchu.

Navigator.setDestinations przyjmuje te parametry:

ParametrOpis
miejsca docelowe Nowa lista miejsc docelowych do ustawienia.
customRoutesOptions Opcje, które będą używane do pobrania wstępnie wyliczonej trasy na podstawie tokena zwróconego przez interfejs Routes Preferred API.
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 podanego miejsca docelowego, zwróci wartość RouteStatus.OK.

Przykład

Poniższy przykładowy kod ilustruje, 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);