最佳化路線上的停靠站順序

歐洲經濟區 (EEA) 開發人員

根據預設,Routes API Compute Routes 方法會依您提供的順序,計算行經多個停靠站 (稱為中途停靠路線控點) 的路線。

您可以讓 Routes API 透過更有效率的順序調整停靠點,規劃出最佳路線。中途點最佳化功能會盡量縮短交通時間,但在判斷哪條路線最有效率時,也會將距離和轉彎次數等其他因素納入考量。

最佳化路線控點

  1. 請確認路徑中的任何中途點都沒有將 via 設為 true,例如:{"address": "Clare,SA", "via": true}。如要進一步瞭解中途路線控點,請參閱「指定中途路線控點」。

  2. 確認 routing_preference 未設為 TRAFFIC_AWARE_OPTIMAL

  3. optimize_waypoint_order 設為 true。例如:

    "optimizeWaypointOrder": "true",
  4. 在欄位遮罩中指定 routes.optimizedIntermediateWaypointIndex 欄位:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

瞭解系統如何最佳化途中的停靠點順序

Routes API 最佳化路線中途點順序的方式如下:

  1. 系統會根據你在要求中提供航點的順序,自動為航點建立索引,從 0 開始。

  2. 使用要求中指派給路線控點的索引編號,最佳化路線控點的順序。

  3. 系統會在 routes.optimizedIntermediateWaypointIndex 下方的 waypoint_order 欄位中,以 routes 物件的形式傳回最佳化路線控點順序。

範例

這項要求是請系統針對從南澳阿德萊德到南澳各主要葡萄酒產區的路線進行最佳化,然後返回阿德萊德。

curl -X POST -H 'content-type: application/json' -d ' {
  "origin": {
    "address": "Adelaide,SA"
  },
  "destination": {
    "address": "Adelaide,SA"
  },
  "intermediates": [
    {"address": "Barossa+Valley,SA"},
    {"address": "Clare,SA"},
    {"address": "Coonawarra,SA"},
    {"address": "McLaren+Vale,SA"}
  ],
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": "true"
  }' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Routes API 會為要求中提供的中繼路線控點建立索引,從 0 開始。例如:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Coonawarrav,SA"},
3    {"address": "McLaren+Vale,SA"}

服務會使用要求中提供的四個路線控點的索引編號,傳回最佳化順序:

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]