ルートが計算(ルート変更を含む)されると、移動時間が最も短いルートがデフォルトの最適ルートとして返されます。ただし、短い方の代替ルートが返されるように、ルーティング戦略を変更することもできます。
「より短い」という用語は、デフォルトのコストモデルに基づいて、最適なルーティング結果の中で最も短いルートであることを意味します。短いルートが絶対的な最短ルートではない場合があります。これは、ルートが不適切な可能性があるからです。たとえば、絶対的に最短のルートが 10 km で移動にかかる時間が 50 分であるのに対し、最適な短いルートは 15 km で、移動に 20 分かかる場合、5 km 短縮するために 30 分を無駄にするのは良いトレードオフではありません。
設定したルートは、ルートが終了するまで変更されません。ルーティング戦略を変更するには、宛先をクリアして、新しいルーティング戦略でリセットする必要があります。
ルーティング戦略の設定
より短いルートのルーティング戦略を使用するようにナビゲーションを設定するには、setDestinations()
の呼び出し時に RoutingOptions.routingStrategy
を設定します。
RoutingOptions.routingStrategy
は、次の 2 つの列挙値のいずれかを取ります。
列挙値 | 説明 |
---|---|
RoutingStrategy.DEFAULT_BEST | Navigation SDK のデフォルトのコストモデルによってルートをランク付けします。これはデフォルトのルーティング戦略です。 |
RoutingStrategy.SHORTER | 距離によってルートをランク付けします。最もランキングの高いルートは、返されたルートの中で最も短いルートです。 |
例
次のコード例は、短いルート ルーティング戦略を設定する方法を示しています。
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
ルートの詳細
短いルートに時間がかかりすぎる場合は、デフォルトの最適ルートを選択することをおすすめします。ルーティング戦略を比較するには、getRouteInfo()
を呼び出してそれぞれのルートの詳細を取得します。詳細には、所要時間や目的地の地点までの距離が含まれます。
ルートの詳細を取得しています
1 つの地点について、両方のルーティング戦略(デフォルトの最適ルートと短いルート)でルートの詳細を取得できます。これらの詳細は RouteInfo
から取得され、ListenableResultFuture
で返されます。
例
次のコード例は、2 つのルーティング戦略それぞれでルートの詳細を取得する方法を示しています。
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
ルート コールアウトの形式
短いルートのルーティング戦略では、ルート上のコールアウトに距離の詳細が表示されます。代わりに到着予定時刻のコールアウトを使用することもできます。
ルート コールアウト形式の構成
ルート コールアウトの形式を変更するには、NavigationView
(または NavigationFragment
)で setRouteCalloutInfoFormat
を呼び出します。setRouteCalloutInfoFormat
は、次のいずれかの列挙値を取ります。
列挙値 | 説明 |
---|---|
RouteCalloutInfoFormat.DEFAULT | デフォルトの最適ルート ルーティング戦略を使用する場合の残り時間が表示されます。短いルートのルーティング戦略を使用した場合に、残りの距離が表示されます。 |
RouteCalloutInfoFormat.TIME | 残り時間を表示します。 |
RouteCalloutInfoFormat.DISTANCE | 残りの距離を表示します。 |
例
次のコード例は、ルート コールアウトの形式を構成する方法を示しています。
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);