最佳化路線上的停靠站順序
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
根據預設,Routes API Compute Routes
方法會依您提供的順序,計算行經多個停靠站 (稱為中途停靠路線控點) 的路線。
您可以讓 Routes API 透過更有效率的順序調整停靠點,規劃出最佳路線。中途點最佳化功能會盡量縮短交通時間,但在判斷哪條路線最有效率時,也會將距離和轉彎次數等其他因素納入考量。
最佳化路線控點
請確認路徑中的任何中途點都沒有將 via
設為 true
,例如:{"address": "Clare,SA", "via": true}
。如要進一步瞭解中途路線控點,請參閱「指定中途路線控點」。
確認 routing_preference
未設為 TRAFFIC_AWARE_OPTIMAL
。
將 optimize_waypoint_order
設為 true
。例如:
"optimizeWaypointOrder": "true",
在欄位遮罩中指定 routes.optimizedIntermediateWaypointIndex
欄位:
REST
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
瞭解系統如何最佳化途中的停靠點順序
Routes API 最佳化路線中途點順序的方式如下:
系統會根據你在要求中提供航點的順序,自動為航點建立索引,從 0 開始。
使用要求中指派給路線控點的索引編號,最佳化路線控點的順序。
系統會在 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
]
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-22 (世界標準時間)。
[null,null,["上次更新時間:2025-07-22 (世界標準時間)。"],[[["\u003cp\u003eThe Routes API's \u003ccode\u003eCompute Routes\u003c/code\u003e method can optimize the order of stops (waypoints) for greater efficiency by considering factors like travel time, distance, and turns.\u003c/p\u003e\n"],["\u003cp\u003eTo enable waypoint optimization, ensure no waypoints are marked as \u003ccode\u003evia\u003c/code\u003e, avoid using \u003ccode\u003eTRAFFIC_AWARE_OPTIMAL\u003c/code\u003e routing preference, and set \u003ccode\u003eoptimizeWaypointOrder\u003c/code\u003e to \u003ccode\u003etrue\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe API indexes waypoints based on their order in the request, optimizes the order, and returns the optimized sequence in the \u003ccode\u003eoptimizedIntermediateWaypointIndex\u003c/code\u003e field.\u003c/p\u003e\n"],["\u003cp\u003eRequests with waypoint optimization are billed at a higher rate on the ComputeRoutes-Advanced SKU.\u003c/p\u003e\n"]]],["The Routes API can optimize the order of stopover waypoints to create a more efficient route. To enable this, set `optimize_waypoint_order` to `true`, ensure no waypoints have `via: true` and the `routing_preference` is not `TRAFFIC_AWARE_OPTIMAL`. The API indexes waypoints, optimizes their order based on factors like travel time and distance, and returns the optimized order in `routes.optimizedIntermediateWaypointIndex`. This optimization is billed at a higher rate.\n"],null,["# Optimize the order of stops on your route\n\n**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\nBy default, the Routes API `Compute Routes`\nmethod calculates a route through multiple stops, called stopover waypoints, in\nthe order that you provide them.\n\nYou can have the Routes API optimize the provided route by rearranging\nstops in a more efficient order. Waypoint optimization optimizes for travel\ntime but also considers other factors such as distance and number of turns when\ndeciding which route is the most efficient.\n\nTo optimize waypoints\n---------------------\n\n1. Make sure none of the waypoints in the route have `via` set to `true`, for\n example: `{\"address\": \"Clare,SA\", \"via\": true}`. For more information about\n intermediate waypoints, see\n [Specify intermediate waypoints](/maps/documentation/routes/intermed_waypoints).\n\n2. Make sure the `routing_preference` is not set to `TRAFFIC_AWARE_OPTIMAL`.\n\n3. Set `optimize_waypoint_order` to `true`. For example:\n\n ```json\n \"optimizeWaypointOrder\": \"true\",\n ```\n4. Specify the `routes.optimizedIntermediateWaypointIndex` field in the field\n mask:\n\n **REST** \n\n ```json\n -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex\n ```\n\n **RPC** \n\n ```gdscript\n const (fieldMask = \"routes.optimizedIntermediateWaypointIndex\")\n ```\n\n### Understand how waypoint order is optimized\n\nHere's how the Routes API optimizes the order of waypoints in a route:\n\n1. Automatically indexes the waypoints based on the order you provide\n them in the request, starting with 0.\n\n2. Optimizes the order of the waypoints using the index numbers it\n assigned to the waypoints in the request.\n\n3. Returns the optimized waypoint order in the `routes` object, in the\n `waypoint_order` field, under `routes.optimizedIntermediateWaypointIndex`.\n\n### Example\n\nThis request asks for optimization for a route from Adelaide, South Australia,\nto each of South Australia's main wine regions, and then returning to Adelaide. \n\n```json\ncurl -X POST -H 'content-type: application/json' -d ' {\n \"origin\": {\n \"address\": \"Adelaide,SA\"\n },\n \"destination\": {\n \"address\": \"Adelaide,SA\"\n },\n \"intermediates\": [\n {\"address\": \"Barossa+Valley,SA\"},\n {\"address\": \"Clare,SA\"},\n {\"address\": \"Coonawarra,SA\"},\n {\"address\": \"McLaren+Vale,SA\"}\n ],\n \"travelMode\": \"DRIVE\",\n \"optimizeWaypointOrder\": \"true\"\n }' \\\n-H 'Content-Type: application/json' \\\n-H 'X-Goog-Api-Key: YOUR_API_KEY' \\\n-H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \\\n'https://routes.googleapis.com/directions/v2:computeRoutes'\n```\n\nThe Routes API indexes the intermediate waypoints provided in the\nrequest, starting at 0. For example: \n\n```json\n0 {\"address\": \"Barossa+Valley,SA\"},\n1 {\"address\": \"Clare,SA\"},\n2 {\"address\": \"Coonawarrav,SA\"},\n3 {\"address\": \"McLaren+Vale,SA\"}\n```\n\nUsing the index numbers for the four waypoints provided in the request, the\nservice then returns the optimized order: \n\n```json\n\"optimizedIntermediateWaypointIndex\": [\n 3,\n 2,\n 0,\n 1\n ]\n```\n| **Caution:** Requests using waypoint optimization are billed at a higher rate on the SKU for Compute Routes Pro. For more details, see [SKU: Routes: Compute Routes Pro](/maps/documentation/routes/usage-and-billing#compute-routes-pro-sku)."]]