デフォルトでは、Routes ライブラリの computeRoutes メソッドは、指定した順序で、ストップオーバー地点と呼ばれる複数の経由地を通るルートを計算します。
Routes API で、より効率的な順序に経由地を並べ替えて、指定されたルートを最適化できます。ウェイポイントの最適化では、移動時間が最適化されますが、最も効率的なルートを判断する際は、距離や進路変更の回数などの他の要素も考慮されます。
地点を最適化するには
- ルート内のどの経由地でも
viaがtrueに設定されていないことを確認します。 routingPreferenceがTRAFFIC_AWARE_OPTIMALに設定されていないことを確認します。optimizeWaypointOrderをtrueに設定します。- フィールド マスクで
optimizedIntermediateWaypointIndicesフィールドを指定します。
経由地の順序が最適化される仕組みを理解する
Routes API でルートの経由地の順序を最適化する方法は次のとおりです。
- リクエストで指定した順序に基づいて、ウェイポイントに自動的にインデックスを付けます(0 から開始)。
- リクエストでウェイポイントに割り当てられたインデックス番号を使用して、ウェイポイントの順序を最適化します。
optimizedIntermediateWaypointIndicesのレスポンスで、最適化された地点の順序を返します。
リクエスト例
次の例は、南オーストラリア州アデレードから南オーストラリア州の主要なワイン産地までのルートで最適化された経由地をリクエストし、アデレードに戻る方法を示しています。
const request = { origin: 'Adelaide, SA', destination: 'Adelaide, SA', intermediates: [ {location: "Barossa+Valley,SA"}, {location: "Clare,SA"}, {location: "Coonawarra,SA"}, {location: "McLaren+Vale,SA"}, ], travelMode: 'DRIVING', optimizeWaypointOrder: true, fields: ['path','optimizedIntermediateWaypointIndices'], };
レスポンスの例
レスポンスにはoptimizedIntermediateWaypointIndices が含まれます。Response: [ { "optimizedIntermediateWaypointIndices": [ 3, // McLaren+Vale, SA 2, // Coonawarra, SA 0, // Barossa+Valley, SA 1 // Clare, SA ], ...