По умолчанию метод Routes API 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
ПКП
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
Поймите, как оптимизируется порядок путевых точек.
Вот как 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'
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 ]