基于Routes API示例,如何用Route Optimization API的OptimizeTours优化途经点顺序?
Route Optimization API 单行程OptimizeTours请求示例
Google Maps的Routes API与新推出的Route Optimization API均可生成多站点的最优路线,后者支持更复杂的业务场景及更多途经点。以下是对应Routes API途经点优化需求的Route Optimization API单行程请求格式。
原Routes API途经点优化请求示例
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'
该请求返回的优化后途经点索引:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]
对应Route Optimization API的OptimizeTours请求格式
curl -X POST -H 'Content-Type: application/json' -d '{ "parent": "projects/YOUR_PROJECT_ID/locations/global", "tours": [ { "shipmentType": "DELIVERY", "stops": [ { "location": { "address": "Adelaide,SA" }, "type": "START" }, { "location": { "address": "Barossa+Valley,SA" }, "type": "DELIVERY" }, { "location": { "address": "Clare,SA" }, "type": "DELIVERY" }, { "location": { "address": "Connawarra,SA" }, "type": "DELIVERY" }, { "location": { "address": "McLaren+Vale,SA" }, "type": "DELIVERY" }, { "location": { "address": "Adelaide,SA" }, "type": "END" } ], "vehicle": { "travelMode": "DRIVE" } } ], "optimizationMode": "MINIMIZE_TRAVEL_TIME" }' \ -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H 'X-Goog-FieldMask: tours.stops, tours.totalTravelTime' \ 'https://routesoptimization.googleapis.com/v1:optimizeTours'
关键参数说明
parent:替换为你的Google Cloud项目ID,格式固定为projects/[你的项目ID]/locations/globaltours:定义单行程任务细节:stops:依次包含起点(标记为START)、所有途经点(标记为DELIVERY)、终点(标记为END),这里起点和终点均为Adelaide,SAvehicle.travelMode:设置为DRIVE,与原Routes API的出行方式保持一致
optimizationMode:设为MINIMIZE_TRAVEL_TIME,对应原请求的路线优化目标(寻找耗时最短的站点顺序)
返回说明
请求成功后,API会返回优化后的行程信息,其中tours[0].stops会按最优顺序排列所有站点,同时还会返回总行驶时间等关键数据。
内容的提问来源于stack exchange,提问作者Avnish
相关产品推荐
相关产品推荐

