選択したトラフィック設定は、次のいずれかの方法で、ルートの詳細の精度とリクエストのパフォーマンスのバランスを取ります。
- トラフィック認識: 可能な限り正確な結果を返します(レイテンシが高くなります)。
- トラフィックを認識しない: できるだけ早く結果を返します(レイテンシが最小)。
リクエストを行う際は、可能な限り正確な結果を返す方がよいか、可能な限り迅速に結果を返す方がよいかを検討してください。Routes ライブラリには、レスポンス データの品質とレスポンスのレイテンシを制御できるオプションが用意されています。
トラフィック レベルとトラフィック モデルを設定する
トラフィック レベルを指定するには、ComputeRoutesRequest で routingPreference を設定します。次のリストに、使用可能な routingPreference オプションを示します。
TRAFFIC_UNAWARE(デフォルト): 概算のルート詳細とともに、最も迅速に結果を返します。TRAFFIC_AWARE: リアルタイムの交通データを使用して、より正確な結果を返しますが、レイテンシが高くなります。TRAFFIC_AWARE_OPTIMAL: リアルタイムのトラフィック データを使用して可能な限り最も正確な結果を返しますが、レイテンシは最も高くなります。
TRAFFIC_MODEL プロパティは、交通状況での所要時間を予測する際に使用する仮定条件を表します(
TrafficModel.BEST_GUESS(デフォルト)、
TrafficModel.OPTIMISTIC、
TrafficModel.PESSIMISTIC)。
交通状況を考慮したルート選択の方法
交通状況を考慮したルート リクエストを作成する手順は次のとおりです。
-
travelModeプロパティをDRIVINGに設定します。 -
routingPreferenceプロパティを次のいずれかに設定します。TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL
注: デフォルトの設定は
TRAFFIC_UNAWAREです。 -
trafficModelプロパティを次のいずれかに設定します。 -
extraComputationsプロパティをTRAFFIC_ON_POLYLINEに設定します。 -
path、speedPaths、routeLabelsフィールドをリクエストします。
次のリクエストの例は、ポリラインに交通状況データを表示する交通状況を考慮したルートをリクエストする方法を示しています。
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
交通状況
交通状況は、トラフィック フローの速度を表します。
- 通常の交通状況: 渋滞がなく、交通が通常の速度で流れている。
- 交通量が少ない~中程度: 渋滞が増加し、交通の流れが遅くなっている。
- 渋滞: 交通速度が大幅に低下している大渋滞。
交通状況を認識していない
デフォルトの設定は TRAFFIC_UNAWARE です。レスポンスをできるだけ早く返す必要があり、おおよそのルーティングの詳細で十分な場合は、このルーティング設定を使用します。
TRAFFIC_UNAWARE のルートは、現在の交通状況を考慮せずに計算されます。このルーティング設定では、リクエストの応答が最も速くなります(レイテンシが最小になります)。
TRAFFIC_UNAWARE を選択した場合、現在の道路状況ではなく、道路網と平均的な交通状況(時間的な要素を考慮に入れない)に基づいてルートと所要時間が選択されます。そのため、一時的に通行止めとなっている道路がルートに含まれることがあります。道路網における状況の変化、平均的な交通状況の最新情報、サービスの分散性などにより、リクエストの結果が時間の経過とともに変化する可能性があります。また、結果は、ほぼ同等のルートでも、時刻やリクエストの頻度によって異なる場合があります。
表示されるレスポンスは次のとおりです。
duration: ルートの到着予定時刻が含まれます。staticDuration: 過去の交通情報のみを考慮したルートの ETA。TRAFFIC_UNAWAREの場合、durationと同じ値が含まれます。
交通状況を考慮する
TRAFFIC_UNAWARE よりも正確なルーティングの詳細が必要で、レイテンシが適度に増加しても構わない場合は、このルーティング設定を使用します。
TRAFFIC_AWARE ルーティング設定を設定すると、サービスは現在の交通状況を考慮してルートを計算します。これにより、ルートとルートの詳細に実際の状況がより正確に反映されます。データ品質の向上は応答レイテンシの増加を伴うため、パフォーマンスの最適化を適用してレイテンシを大幅に短縮します。
表示されるレスポンスは次のとおりです。
duration: リアルタイムの交通情報を考慮した到着予定時刻。staticDuration: 過去の交通情報のみを考慮したルートの ETA。
トラフィック アウェア オプティマル
レスポンスにかかる時間を気にせず、最高品質の結果が必要な場合は、このルーティング設定を使用します。このルーティング設定では、レスポンスの返信に最も長い遅延が発生します(レイテンシが最も高くなります)。
TRAFFIC_AWARE_OPTIMAL ルーティング設定を設定すると、サービスは現在の交通状況を考慮してルートを計算しますが、パフォーマンスの最適化は適用しません。このモードでは、サーバーが道路網をより徹底的に検索して、最適なルートを見つけます。
TRAFFIC_AWARE_OPTIMAL ルート設定は、maps.google.com と Google マップ モバイルアプリで使用されるモードと同等です。
このオプションを computeRouteMatrix とともに使用する場合、リクエスト内の要素数(出発地の数 × 目的地の数)は 25 を超えることはできません。
表示されるレスポンスは次のとおりです。
duration: リアルタイムの交通情報を考慮したルートの到着予定時刻。staticDuration: 過去の交通情報のみを考慮したルートの ETA。
出発時間を設定する(省略可)
このプロパティは、出発時刻を将来に設定する必要がある交通状況認識リクエストでのみ使用します。departureTime プロパティを設定しない場合、デフォルトはリクエストを行った時刻になります。
経路を選択する際にサービスがトラフィックを予測する方法を調整する場合は、departureTime プロパティを TRAFFIC_AWARE オプションおよび TRAFFIC_AWARE_OPTIMAL オプションとともに使用します。
TRAFFIC_UNAWARE: ルートと所要時間は、道路網と平均的な交通状況(時間的な要素を考慮に入れない)に基づいて選択されるため、おすすめしません。TRAFFIC_AWAREとTRAFFIC_AWARE_OPTIMAL: これらの設定ではリアルタイムの交通状況が考慮されるため、近い将来に出発する場合におすすめします。departureTimeが現在時刻に近いほど、現在の交通状況が重視され、関連性が高くなります。出発時刻を未来に設定するほど、ルートの選択で過去の交通状況が考慮されます。
ルートトークンを取得する
ルートトークンは、ルートのウェブセーフな Base64 エンコード表現です。ルートトークンを使用して、Navigation SDK とルートを共有します。SDK はこのトークンを使用して、ルートを再構築し、ルートの再設定中も元のナビゲーション インテントを維持します。
ルートトークンを取得する手順は次のとおりです。
- travelMode を
DRIVINGに設定します。 routingPreferenceをTRAFFIC_AWAREまたはTRAFFIC_AWARE_OPTIMALに設定します。routeTokenフィールドをリクエストします。
次のリクエスト例は、ルートトークンをリクエストする方法を示しています。
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };