當您正在決定共乘行程的最佳路線時,最快路線不一定是最佳選項。建議您自訂路線。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);