По умолчанию метод computeRoutes библиотеки маршрутов рассчитывает маршрут через несколько остановок, называемых промежуточными точками остановки, в том порядке, в котором вы их указываете.
Вы можете настроить API маршрутов для оптимизации предоставленного маршрута, переставив остановки в более эффективном порядке. Оптимизация по точкам маршрута оптимизирует время в пути, но также учитывает другие факторы, такие как расстояние и количество поворотов, при выборе наиболее эффективного маршрута.
Для оптимизации путевых точек
- Убедитесь, что ни для одной из точек маршрута параметр
viaне установлен наtrue. - Убедитесь, что для
routingPreferenceне задано значениеTRAFFIC_AWARE_OPTIMAL. - Установите
optimizeWaypointOrderнаtrue. - Укажите поле
optimizedIntermediateWaypointIndicesв маске поля.
Понять, как оптимизируется порядок точек маршрута
Вот как Routes API оптимизирует порядок путевых точек в маршруте:
- Автоматически индексирует путевые точки в том порядке, в котором вы их указали в запросе, начиная с 0.
- Оптимизирует порядок путевых точек, используя индексные номера, присвоенные путевым точкам в запросе.
- Возвращает оптимизированный порядок путевых точек в ответе в разделе
optimizedIntermediateWaypointIndices.
Пример запроса
В следующем примере показано, как запросить оптимизированные промежуточные точки на маршруте из Аделаиды, Южная Австралия, в каждый из основных винодельческих регионов Южной Австралии, а затем вернуться в Аделаиду.
const request = { origin: 'Adelaide, SA', destination: 'Adelaide, SA', intermediates: [ {location: "Barossa+Valley,SA"}, {location: "Clare,SA"}, {location: "Coonawarra,SA"}, {location: "McLaren+Vale,SA"}, ], travelMode: 'DRIVING', optimizeWaypointOrder: true, fields: ['path','optimizedIntermediateWaypointIndices'], };
Пример ответа
Ответ включаетoptimizedIntermediateWaypointIndices .Response: [ { "optimizedIntermediateWaypointIndices": [ 3, // McLaren+Vale, SA 2, // Coonawarra, SA 0, // Barossa+Valley, SA 1 // Clare, SA ], ...