短いルート設定

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

「短い」という用語は、デフォルトのコストモデルに基づいて、最適なルーティング結果の中で最も短いルートを意味します。短いルートは絶対的な最短ルートではない場合があります。これは、そのルートが代替手段として不適切となる可能性があるためです。たとえば、絶対最短ルートが 10 km で移動に 50 分かかるのに対し、最適な短ルートは 15 km で移動に 20 分かかる場合です。30 分を費やして 5 km 短縮するのは良いトレードオフではありません。

ルートの経路設定方法は、ルートが完了するまで設定されません。ルーティング戦略を変更するには、宛先をクリアして、新しいルーティング戦略で宛先を再度リセットする必要があります。

ルーティング戦略の設定

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