По умолчанию метод Compute Routes рассчитывает маршрут через несколько остановок, называемых промежуточными точками остановки, в том порядке, в котором вы их указываете.
Вы можете настроить API маршрутов для оптимизации предоставленного маршрута, переставив остановки в более эффективном порядке. Оптимизация по точкам маршрута оптимизирует время в пути, но также учитывает другие факторы, такие как расстояние и количество поворотов, при выборе наиболее эффективного маршрута.
Для оптимизации путевых точек
- Убедитесь, что ни для одной из промежуточных точек маршрута параметр - viaне имеет значения- true, например:- {"address": "Clare,SA", "via": true}. Подробнее о промежуточных точках см. в разделе "Указание промежуточных точек ".
- Убедитесь, что для - routing_preferenceне задано значение- TRAFFIC_AWARE_OPTIMAL.
- Установите - optimize_waypoint_orderв- true. Например:- "optimizeWaypointOrder": "true", 
- Укажите поле - routes.optimizedIntermediateWaypointIndexв маске поля:- ОТДЫХ - -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'
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 ]