短いルート設定

ルートが計算(ルート変更を含む)されると、移動時間が最も短いルートがデフォルトの最適ルートとして返されます。ただし、短い方の代替ルートが返されるように、ルーティング戦略を変更することもできます。

「より短い」という用語は、デフォルトのコストモデルに基づいて、最適なルーティング結果の中で最も短いルートであることを意味します。短いルートが絶対的な最短ルートではない場合があります。これは、ルートが不適切な可能性があるからです。たとえば、絶対的に最短のルートが 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);