При построении маршрутов в 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=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}`;
При использовании разных режимов передвижения сервис автоматически выбирает допустимые дороги, тротуары, велосипедные дорожки и другие элементы транспортной инфраструктуры.
Параметр определяет стратегию поиска маршрута.
Наиболее распространённые значения:
fast
short
Поиск самого быстрого маршрута.
routingMode=fast
Алгоритм учитывает:
Пример:
const url =
`https://router.hereapi.com/v8/routes?` +
`transportMode=car` +
`&routingMode=fast` +
`&origin=${origin}` +
`&destination=${destination}` +
`&apikey=${apiKey}`;
Поиск кратчайшего расстояния.
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=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 мин
Изменение только одного параметра приводит к выбору другого набора дорог и иному балансу между длиной пути и временем движения.
Для транспортных приложений, логистических систем и навигационных сервисов корректный подбор параметров маршрутизации является ключевым фактором точности расчётов и качества пользовательского опыта.