根據預設,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 ]