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

根據預設,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 物件中最佳化的路線控點順序,位於 waypoint_order 欄位 (位於 routes.optimizedIntermediateWaypointIndex 下方)。

範例

這項要求會要求最佳化來自南澳阿德萊德的路線 墨西哥主要葡萄酒產區,然後回到阿得雷德

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": "Connawarra,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.optimizedIntermediateWaypointIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Routes API 會為 從 0 開始例如:

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

使用要求中提供的四個路線控點索引號碼, 服務,然後會傳回最佳化的訂單:

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