ルート計算(再ルーティングを含む)では、移動に要する時間が最も短いルートがデフォルトの最適ルート として返されます。ただし、ルート候補のうち短いルートが返されるようにルーティング戦略を変更することもできます。
ここで言う「短い」とは、Google のデフォルトの費用モデルに基づく最適なルートの中で最も短いルートを意味します。 絶対的に短いルートは、最適な選択肢ではない可能性があるため、短いルートが絶対的に短いルートであるとは限りません。 たとえば、絶対的に短いルートが 10 km で移動に 50 分かかる場合、別のルートは 15 km ですが、移動に 20 分しかかかりません。この場合、5 km 短縮するために 30 分かかるのは割に合わないため、2 番目のルートが最適です。
旅行のルーティング戦略を設定すると、旅行が完了するまで変更されません。既存の旅行のルーティング戦略を変更するには、目的地をクリアして、新しいルーティング戦略で再度設定する必要があります。
ルーティング戦略を設定する
ルーティング戦略を構成するには、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);
ルートのコールアウト形式
短いルートを優先する場合、ルート沿いのコールアウトには距離の詳細が表示されます。代わりに ETA コールアウトを使用することもできます。
ルートのコールアウト形式を構成する
ルートのコールアウト形式を変更するには、NavigationView(または NavigationFragment)で setRouteCalloutInfoFormat を呼び出します。setRouteCalloutInfoFormat は、次のいずれかの列挙値を取ります。
| 列挙値 | 説明 |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | デフォルトの最適ルートのルーティング 戦略を使用している場合は、残り時間を表示します。短いルートのルーティング 戦略を使用している場合は、残りの距離を表示します。 |
| RouteCalloutInfoFormat.TIME | 残り時間を表示します。 |
| RouteCalloutInfoFormat.DISTANCE | 残りの距離を表示します。 |
例
次のコードサンプルは、ルートのコールアウト形式を構成する方法を示しています。
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);