路徑權杖

當您正在決定共乘行程的最佳路線時,最快路線不一定是最佳選項。建議您自訂路線。Routes Preferred API 可讓您使用 ComputeCustomRoutes 方法指定路徑目標,藉此自訂路徑。

建立自訂路徑時,Routes Preferred API 會產生路徑符記。接著,您可以將權杖傳遞至 Android 適用的 Navigation SDK 並擷取自訂路徑。

如要進一步瞭解如何建立自訂路徑,請參閱「建立自訂路徑」。

擷取自訂路徑

您可以使用 Navigator.setDestinations 方法將路徑權杖傳遞至 Android 版 Navigation SDK,以擷取自訂路徑。

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