路徑計算 (包括重新轉送) 會傳回花費最少時間導覽的路線,做為「預設最佳路徑」。但是,您可以變更轉送策略,改為傳回較短的路徑替代值。
「更短」一詞是指依據我們的預設費用模型,在最佳路線中最短的路徑。較短的路線不一定是「絕對」最短路線,因為這個選項可能不是最佳替代方案。舉例來說,如果絕對最短路線為 10 公里且需要 50 分鐘導航,另一條路線只剩 20 分鐘,則第二種選擇是最佳選擇,因為花 30 分鐘減去五公里並不是很好的取捨。
設定行程的轉送策略後,除非行程完成,否則策略不會改變。如要變更現有行程的轉送策略,您必須清除目的地,並使用新的轉送策略再次重設這些目的地。
取得路線詳細資料
如要判斷哪一種路徑策略是特定路線點的最佳選擇,請呼叫 getRouteInfo()
來取得預設最佳路徑和絕對較短路線的路線詳細資料。詳細資料包括時間長度和到目的地路線控點的距離。
這些詳細資料來自 RouteInfo
,並在 ListenableResultFuture
中傳回。
範例
以下程式碼範例示範如何取得這兩種轉送策略的路線詳細資料。
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
設定轉送策略
您可以在呼叫 setDestinations()
時設定 RoutingOptions.routingStrategy
,藉此設定轉送策略。
RoutingOptions.routingStrategy
接受下列其中一個列舉值:
列舉值 | 說明 |
---|---|
RoutingStrategy.DEFAULT_BEST | 依 Navigation SDK 的預設費用模式為路徑排名。這是預設轉送策略。 |
RoutingStrategy.SHORTER | 依距離排名路線。排名最高的路徑是傳回這些路徑的最短路徑。 |
範例
以下程式碼範例示範如何設定較短的路徑偏好設定。
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
包含渡輪的路線
根據預設,NavSDK 會排除包含渡輪的路徑。如想在路線中加入渡輪選項,可以將 avoidFerries
設為 false
,即可調整這個路線規劃偏好設定,顯示搭乘渡輪的行程。
範例
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
路徑摘要格式
在較短的路線偏好設定底下,路線沿途的摘要會顯示距離詳細資料。不過,你也可以改用延展型文字廣告摘要。
設定路徑摘要格式
您可以在 NavigationView
(或在 NavigationFragment
中) 呼叫 setRouteCalloutInfoFormat
來變更路徑摘要格式。setRouteCalloutInfoFormat
會採用下列其中一個列舉值:
列舉值 | 說明 |
---|---|
RouteCalloutInfoFormat.DEFAULT | 顯示使用預設最佳路徑策略的剩餘時間。顯示使用較短路線規劃策略時的剩餘距離。 |
RouteCalloutInfoFormat.TIME | 顯示剩餘時間。 |
RouteCalloutInfoFormat.DISTANCE | 顯示剩餘距離。 |
範例
以下程式碼範例示範如何設定路徑摘要格式。
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);