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