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