Оптимизируйте порядок остановок на маршруте

Разработчики Европейской экономической зоны (ЕЭЗ)

По умолчанию метод computeRoutes библиотеки маршрутов рассчитывает маршрут через несколько остановок, называемых промежуточными точками остановки, в том порядке, в котором вы их указываете.

Вы можете настроить API маршрутов для оптимизации предоставленного маршрута, переставив остановки в более эффективном порядке. Оптимизация по точкам маршрута оптимизирует время в пути, но также учитывает другие факторы, такие как расстояние и количество поворотов, при выборе наиболее эффективного маршрута.

Для оптимизации путевых точек

  1. Убедитесь, что ни для одной из точек маршрута параметр via не установлен на true .
  2. Убедитесь, что для routingPreference не задано значение TRAFFIC_AWARE_OPTIMAL .
  3. Установите optimizeWaypointOrder на true .
  4. Укажите поле optimizedIntermediateWaypointIndices в маске поля.

Понять, как оптимизируется порядок точек маршрута

Вот как Routes API оптимизирует порядок путевых точек в маршруте:

  1. Автоматически индексирует путевые точки в том порядке, в котором вы их указали в запросе, начиная с 0.
  2. Оптимизирует порядок путевых точек, используя индексные номера, присвоенные путевым точкам в запросе.
  3. Возвращает оптимизированный порядок путевых точек в ответе в разделе 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
    ],
    ...