Режимы передвижения

Классификация транспортных режимов

В системе маршрутизации используется параметр travelMode, определяющий способ перемещения между точками маршрута. От выбранного режима зависит логика построения пути, допустимые дороги, а также набор дополнительных ограничений и параметров расчёта.

Основные режимы:

  • DRIVING — автомобильный маршрут
  • WALKING — пешеходный маршрут
  • BICYCLING — велосипедный маршрут
  • TRANSIT — маршрут с использованием общественного транспорта

Каждый режим влияет на алгоритм построения маршрута, приоритет дорог, а также доступность дополнительных данных (например, расписания транспорта или велосипедной инфраструктуры).


DRIVING (автомобильный режим)

Режим DRIVING используется для построения автомобильных маршрутов с учётом дорожной сети, одностороннего движения, развязок и ограничений.

Особенности режима

  • учитываются автомобильные дороги всех классов
  • поддерживаются параметры объезда платных дорог и автомагистралей
  • возможен учёт пробок (при включённом trafficModel)
  • применяется наиболее сложная модель маршрутизации

Пример запроса

const request = {
  origin: "Almaty",
  destination: "Astana",
  travelMode: google.maps.TravelMode.DRIVING
};

const directionsService = new google.maps.DirectionsService();

directionsService.route(request, (result, status) => {
  if (status === "OK") {
    console.log(result);
  }
});

Дополнительные параметры

  • avoidTolls — исключение платных дорог
  • avoidHighways — исключение автомагистралей
  • avoidFerries — исключение паромных переправ
const request = {
  origin: "A",
  destination: "B",
  travelMode: google.maps.TravelMode.DRIVING,
  avoidTolls: true,
  avoidHighways: true
};

WALKING (пешеходный режим)

Режим WALKING строит маршруты, ориентированные на пешеходную инфраструктуру.

Характеристики

  • используются тротуары, пешеходные дорожки и переходы
  • исключаются автомагистрали, недоступные для пешеходов
  • применяется упрощённая модель маршрутизации
  • часто учитываются кратчайшие физические расстояния

Особенности расчёта

Приоритет получают:

  • пешеходные зоны
  • парки и проходные территории
  • лестницы и переходы (если доступны в данных)

Пример использования

const request = {
  origin: "Metro station",
  destination: "Museum",
  travelMode: google.maps.TravelMode.WALKING
};

BICYCLING (велосипедный режим)

Режим BICYCLING оптимизирует маршрут для велосипедного передвижения.

Основные особенности

  • предпочтение велодорожкам и второстепенным дорогам
  • избегание автомагистралей
  • учёт велосипедной инфраструктуры
  • ограниченная доступность в некоторых регионах

Поведенческая модель маршрута

Алгоритм учитывает:

  • наличие велополос
  • тип дорожного покрытия
  • рельеф (в отдельных регионах)
  • безопасность маршрута

Пример запроса

const request = {
  origin: "Park A",
  destination: "Park B",
  travelMode: google.maps.TravelMode.BICYCLING
};

TRANSIT (общественный транспорт)

Режим TRANSIT используется для построения маршрутов с использованием общественного транспорта.

Поддерживаемые виды транспорта

  • автобус
  • метро
  • трамвай
  • поезд
  • паром (в зависимости от региона)

Особенности режима

  • учитываются расписания движения
  • формируются пересадки между линиями
  • возвращаются сегменты маршрута с типами транспорта
  • возможна фильтрация по времени отправления

Дополнительные параметры

  • departureTime — время отправления
  • arrivalTime — время прибытия
  • transitOptions — настройки маршрута
const request = {
  origin: "Station A",
  destination: "Station B",
  travelMode: google.maps.TravelMode.TRANSIT,
  transitOptions: {
    departureTime: new Date()
  }
};

Структура объекта запроса маршрута

Объект запроса, передаваемый в DirectionsService.route, содержит набор параметров, влияющих на расчёт маршрута.

Основные поля

  • origin — начальная точка
  • destination — конечная точка
  • travelMode — режим передвижения
  • waypoints — промежуточные точки
  • optimizeWaypoints — оптимизация порядка точек
  • provideRouteAlternatives — альтернативные маршруты
const request = {
  origin: "Point A",
  destination: "Point B",
  travelMode: google.maps.TravelMode.DRIVING,
  waypoints: [
    { location: "Point C", stopover: true },
    { location: "Point D", stopover: true }
  ],
  optimizeWaypoints: true
};

Обработка результатов маршрутизации

Ответ сервиса содержит структуру DirectionsResult, включающую маршруты, сегменты и геометрию линий.

Основные элементы результата

  • routes — список возможных маршрутов
  • legs — сегменты между точками
  • steps — детализированные шаги
  • polyline — геометрия маршрута

Отрисовка маршрута

const renderer = new google.maps.DirectionsRenderer();

renderer.setMap(map);
renderer.setDirections(result);

Влияние travelMode на детализацию маршрута

Каждый режим изменяет структуру steps:

  • DRIVING — манёвры на дорогах, развязки, съезды
  • WALKING — переходы, лестницы, пешеходные пути
  • BICYCLING — велодорожки, второстепенные улицы
  • TRANSIT — сегменты транспорта и пересадки

Ограничения режимов передвижения

DRIVING

  • зависимость от дорожной карты региона
  • возможны отклонения при отсутствии актуальных данных о пробках

WALKING

  • невозможность построения маршрутов через закрытые территории
  • ограничения на длинные маршруты в отдельных регионах

BICYCLING

  • неполное покрытие велосипедной инфраструктуры
  • различия в доступности данных по странам

TRANSIT

  • зависимость от качества расписаний
  • невозможность построения маршрута вне расписания транспорта

Совместное использование параметров маршрутизации

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

Пример гибкой конфигурации

const request = {
  origin: "City Center",
  destination: "Suburb",
  travelMode: google.maps.TravelMode.DRIVING,
  avoidTolls: true,
  avoidHighways: false,
  provideRouteAlternatives: true
};

Особенности выбора режима

Алгоритм маршрутизации ориентируется на:

  • доступность дорожной сети
  • приоритет инфраструктуры
  • ограничения транспорта
  • специфику региона

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