Параметры расчета маршрута

При построении маршрутов в HERE Maps API результат зависит не только от начальной и конечной точки, но и от набора параметров, передаваемых в сервис маршрутизации. Эти параметры определяют тип транспорта, оптимизационные критерии, ограничения движения, особенности дорожной сети и формат возвращаемых данных.

В современных версиях HERE Routing API расчёт маршрута выполняется через REST-интерфейс, а JavaScript-приложение отправляет запросы к сервису маршрутизации и визуализирует полученный результат на карте.

Базовый запрос содержит координаты отправления и назначения:

const url =
  'https://router.hereapi.com/v8/routes?' +
  'transportMode=car' +
  '&origin=55.751244,37.618423' +
  '&destination=59.934280,30.335099' +
  '&return=summary,polyline' +
  '&apikey=YOUR_API_KEY';

Каждый дополнительный параметр способен существенно изменить итоговый маршрут.


Параметр transportMode

Параметр transportMode определяет тип транспортного средства, для которого выполняется расчёт.

Пример:

transportMode=car

Основные значения:

Значение Назначение
car Легковой автомобиль
truck Грузовой транспорт
pedestrian Пешеход
bicycle Велосипед
scooter Электросамокат

Пример формирования URL:

const transportMode = 'bicycle';

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=${transportMode}` +
  `&origin=55.751244,37.618423` +
  `&destination=55.765000,37.650000` +
  `&return=polyline` +
  `&apikey=${apiKey}`;

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


Параметр routingMode

Параметр определяет стратегию поиска маршрута.

Наиболее распространённые значения:

fast
short

Fast

Поиск самого быстрого маршрута.

routingMode=fast

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

  • ограничения скорости;
  • тип дорог;
  • исторические данные движения;
  • дорожный трафик.

Пример:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&routingMode=fast` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

Short

Поиск кратчайшего расстояния.

routingMode=short

Такой маршрут может оказаться медленнее из-за пробок, светофоров или качества дорожной сети.


Указание промежуточных точек

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

Пример:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&origin=55.751244,37.618423` +
  `&via=56.838926,60.605703` +
  `&destination=59.934280,30.335099` +
  `&apikey=${apiKey}`;

Несколько промежуточных точек:

&via=56.838926,60.605703
&via=57.153033,65.534328
&via=58.010258,56.234203

Маршрутизатор обязан провести маршрут через все указанные координаты.


Избежание определённых типов дорог

Во многих сценариях необходимо исключить некоторые категории дорог.

Для этого используется параметр:

avoid[features]

Пример:

avoid[features]=tollRoad

Исключение платных дорог:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&avoid[features]=tollRoad` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

Поддерживаемые ограничения:

Значение Описание
tollRoad Платные дороги
ferry Паромные переправы
tunnel Тоннели
dirtRoad Грунтовые дороги

Несколько значений:

avoid[features]=tollRoad,ferry

Использование дорожного трафика

Трафик оказывает большое влияние на расчёт маршрутов.

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

Дополнительно может использоваться прогнозирование дорожной ситуации на конкретный момент времени.

Пример:

departureTime=2026-07-01T08:00:00Z

Запрос:

const departure =
  new Date().toISOString();

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&departureTime=${departure}` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

Сервис использует:

  • текущую дорожную обстановку;
  • исторические данные;
  • прогнозируемую загрузку дорог.

Планирование маршрута по времени прибытия

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

Пример:

arrivalTime=2026-07-01T18:00:00Z

Запрос:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&arrivalTime=2026-07-01T18:00:00Z` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

Маршрутизатор определит оптимальное время выезда для достижения цели к заданному сроку.


Параметры для грузового транспорта

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

Основной набор параметров:

truck[height]
truck[width]
truck[length]
truck[weight]
truck[axleCount]

Пример:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=truck` +
  `&truck[height]=4.0` +
  `&truck[width]=2.5` +
  `&truck[length]=12` +
  `&truck[weight]=18000` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

Сервис исключает дороги, на которых действуют ограничения по:

  • высоте;
  • массе;
  • длине транспортного средства;
  • количеству осей;
  • опасным грузам.

Учет опасных грузов

При перевозке специальных грузов используются дополнительные ограничения.

Пример:

truck[shippedHazardousGoods]=explosive

Запрос:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=truck` +
  `&truck[shippedHazardousGoods]=explosive` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

Алгоритм автоматически исключает запрещённые участки дорожной сети.


Ограничение области маршрута

Иногда необходимо запретить прохождение маршрута через определённую географическую область.

Используются специальные параметры избегания зон.

Пример концепции:

avoid[areas]

Квадратная область:

avoid[areas]=bbox:37.5,55.7,37.7,55.8

Маршрут будет построен в обход указанного прямоугольника.

Это особенно полезно для:

  • ремонтных работ;
  • перекрытых районов;
  • временно закрытых зон;
  • пользовательских ограничений логистики.

Количество альтернативных маршрутов

Сервис способен возвращать несколько вариантов движения.

Параметр:

alternatives=3

Пример:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&alternatives=3` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

В ответе будет получено до трёх альтернативных маршрутов с различными характеристиками.

Обработка результата:

const routes = data.routes;

routes.forEach((route, index) => {
  console.log(
    `Маршрут ${index + 1}:`,
    route.sections[0].summary.length,
    route.sections[0].summary.duration
  );
});

Возвращаемые данные через параметр return

Параметр return определяет состав информации в ответе.

Пример:

return=summary,polyline

Наиболее востребованные значения:

Значение Назначение
summary Общая статистика
polyline Геометрия маршрута
actions Пошаговые инструкции
travelSummary Детальная статистика
tolls Информация о платных дорогах

Расширенный вариант:

return=summary,polyline,actions,tolls

Получение пошаговых инструкций

Для реализации навигации используются инструкции движения.

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

return=actions,instructions

Обработка ответа:

route.sections.forEach(section => {
  section.actions.forEach(action => {
    console.log(action.instruction);
  });
});

Типичный результат:

Двигайтесь прямо
Через 300 метров поверните направо
Продолжайте движение по проспекту

Информация о платных дорогах

Для расчёта стоимости поездки можно получить сведения о платных участках.

Запрос:

return=tolls

Пример:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&return=tolls` +
  `&origin=${origin}` +
  `&destination=${destination}` +
  `&apikey=${apiKey}`;

В ответе могут присутствовать:

  • платные участки;
  • пункты оплаты;
  • стоимость проезда;
  • валюты платежей.

Комбинирование параметров

На практике параметры используются совместно.

Пример комплексного запроса:

const url =
  `https://router.hereapi.com/v8/routes?` +
  `transportMode=car` +
  `&routingMode=fast` +
  `&avoid[features]=tollRoad,ferry` +
  `&departureTime=${new Date().toISOString()}` +
  `&alternatives=2` +
  `&return=summary,polyline,actions` +
  `&origin=55.751244,37.618423` +
  `&destination=59.934280,30.335099` +
  `&apikey=${apiKey}`;

Такой запрос позволяет одновременно:

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

Анализ параметров в ответе маршрутизатора

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

Пример обработки ответа:

const route = data.routes[0];
const section = route.sections[0];

const summary = section.summary;

console.log('Расстояние:', summary.length);
console.log('Время:', summary.duration);
console.log('Базовое время:', summary.baseDuration);

Основные свойства:

Поле Описание
length Длина маршрута в метрах
duration Итоговое время в секундах
baseDuration Время без учета трафика
consumption Расход энергии или топлива (если доступен)

Разница между duration и baseDuration позволяет оценить влияние дорожной ситуации на продолжительность поездки.


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

Один и тот же маршрут может существенно отличаться в зависимости от выбранных настроек.

Пример сравнения:

routingMode=fast

Результат:

Расстояние: 120 км
Время: 1 ч 45 мин

Пример:

routingMode=short

Результат:

Расстояние: 105 км
Время: 2 ч 05 мин

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

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