ルート トークン

ライドシェアリング ルートの最適ルートを決定する際、最速ルートが常に最適であるとは限りません。ルートをカスタマイズすることもできます。Routes Preferred API では、ComputeCustomRoutes メソッドを使用してルートの目的を指定してルートをカスタマイズできます。

カスタムルートを作成すると、Routes Preferred API がルートトークンを生成します。その後、トークンを Navigation SDK for Android に渡し、カスタムルートを取得できます。

カスタムルートの作成の詳細については、カスタムルートの作成をご覧ください。

カスタムルートの取得

カスタムルートを取得するには、Navigator.setDestinations メソッドを使用してルートトークンを Navigation SDK for Android に渡します。

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

カスタムルートは、以前に設定された宛先をオーバーライドします。対応するドライバーの出発地、道路状況、交通状況が使用されます。

Navigator.setDestinations は次のパラメータを取ります。

パラメータ説明
宛先 設定する新しい宛先リスト。
customRoutesOptions Routes Preferred API によって返されたトークンに基づいて事前に計算されたルートを取得するために使用されるオプション。
displayOptions ルートの表示に使用するオプション。

Navigator.setDestinations メソッドは、リクエストのステータスを返します。ユーザーの現在地から指定された目的地までのルートが見つかった場合、RouteStatus.OK が返されます。

次のコードサンプルは、カスタムルートを取得する方法を示しています。

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);