Расчёт расстояний
Сервис «Расчёт расстояний» помогает построить точные маршруты с учётом особенностей грузового транспорта, а также актуальных дорожных условий и ограничений: паромы, зимники и платные дороги. Сервис позволяет определять расстояния между населёнными пунктами и координатами, а также исключать из маршрута определённые регионы и страны.
Доступ к сервису
Доступ к API Расчёта расстояний платный, предоставляется по запросу.
Чтобы узнать условия использования, свяжитесь с отделом продаж.
Email: boards@ati.su
Телефон: +7-812-602-01-15
Методы получения расстояния и маршрута
Расчёт расстояний и построение маршрутов осуществляются от/до точки, которые можно указать как node_id (идентификатор населённого пункта), geo_point (координата). Если указано оба варианта, используется только координата.
Получение расстояния (платный) post /gw/gis-rm/v1/distance
Фильтр маршрута
Точки маршрута в порядке следования
Идентификатор населённого пункта
Координаты точки
Широта
Долгота
Ограничения маршрута
Строить маршрут внутри одной страны
Значение по умолчанию: true
Не заезжать на МКАД
Значение по умолчанию: false
Не заезжать в Украину
Значение по умолчанию: true
Разрешить проезд по паромам При передаче значения по умолчанию будет учитываться расписание (пока расписания нет, поэтому всегда разрешены)
Значение по умолчанию: null
Разрешить проезд по зимникам При передаче значения по умолчанию будет учитываться расписание (декабрь, январь, февраль - зимники разрешены, остальные месяцы - запрещены)
Значение по умолчанию: null
Разрешить проезд по платным трассам
Значение по умолчанию: true
Тип маршрута для поиска
Значение по умолчанию: 2
Members:
- 1 - Самый короткий
- 2 - Самый быстрый
Задержка при пересечении границы в минутах
Значение по умолчанию: 120
Задержка при использовании паромов в минутах
Значение по умолчанию: 120
Максимальная скорость транспортного средства в км/ч
Значение по умолчанию: 110
Полная масса транспортного средства в килограммах
Значение по умолчанию: 10 000
curl 'https://api.ati.su/gw/gis-rm/v1/distance' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"nodes":[{"node_id":1,"geo_point":{"lat":59.8913,"lon":30.3727}}],"options":{"within_country":true,"exclude_mkad":false,"exclude_ukraine":true,"allow_ferry":true,"allow_winter_road":false,"allow_toll_road":true,"strategy":1,"customs_delay":120,"ferry_delay":120,"max_speed":110,"weight":10000}}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/gis-rm/v1/distance", "{""nodes"":[{""node_id"":1,""geo_point"":{""lat"":59.8913,""lon"":30.3727}}],""options"":{""within_country"":true,""exclude_mkad"":false,""exclude_ukraine"":true,""allow_ferry"":true,""allow_winter_road"":false,""allow_toll_road"":true,""strategy"":1,""customs_delay"":120,""ferry_delay"":120,""max_speed"":110,""weight"":10000}}"); 200 Расстояние и время в пути. status: success — маршрут построен с учётом всех ограничений, without_restrictions — только без ограничений
Расстояние в метрах
success - нашли маршрут по всем параметрам фильтра. without_restrictions - не нашли маршрут по всем параметрам фильтра, но нашли маршрут без ограничений
Стоимость проезда по Платону в рублях РФ
Общее расстояние, преодоленное по Платону в метрах
Общее расстояние платных дорог в метрах
Расстояние в метрах
Время в пути в секундах с учетом параметров и задержек
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
404 Маршрут не найден (route_not_found) или не найдена одна из точек маршрута (point_not_found)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен (too_many_requests) или построение маршрута не уложилось в таймаут (request_timeout)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Получение расстояния (платный) post /gw/oauth2/gis-rm/v1/distance Тестирование запросов возможно только с авторизацией Bearer
Фильтр маршрута
Точки маршрута в порядке следования
Идентификатор населённого пункта
Координаты точки
Широта
Долгота
Ограничения маршрута
Строить маршрут внутри одной страны
Значение по умолчанию: true
Не заезжать на МКАД
Значение по умолчанию: false
Не заезжать в Украину
Значение по умолчанию: true
Разрешить проезд по паромам При передаче значения по умолчанию будет учитываться расписание (пока расписания нет, поэтому всегда разрешены)
Значение по умолчанию: null
Разрешить проезд по зимникам При передаче значения по умолчанию будет учитываться расписание (декабрь, январь, февраль - зимники разрешены, остальные месяцы - запрещены)
Значение по умолчанию: null
Разрешить проезд по платным трассам
Значение по умолчанию: true
Тип маршрута для поиска
Значение по умолчанию: 2
Members:
- 1 - Самый короткий
- 2 - Самый быстрый
Задержка при пересечении границы в минутах
Значение по умолчанию: 120
Задержка при использовании паромов в минутах
Значение по умолчанию: 120
Максимальная скорость транспортного средства в км/ч
Значение по умолчанию: 110
Полная масса транспортного средства в килограммах
Значение по умолчанию: 10 000
curl 'https://api.ati.su/gw/oauth2/gis-rm/v1/distance' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"nodes":[{"node_id":1,"geo_point":{"lat":59.8913,"lon":30.3727}}],"options":{"within_country":true,"exclude_mkad":false,"exclude_ukraine":true,"allow_ferry":true,"allow_winter_road":false,"allow_toll_road":true,"strategy":1,"customs_delay":120,"ferry_delay":120,"max_speed":110,"weight":10000}}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/oauth2/gis-rm/v1/distance", "{""nodes"":[{""node_id"":1,""geo_point"":{""lat"":59.8913,""lon"":30.3727}}],""options"":{""within_country"":true,""exclude_mkad"":false,""exclude_ukraine"":true,""allow_ferry"":true,""allow_winter_road"":false,""allow_toll_road"":true,""strategy"":1,""customs_delay"":120,""ferry_delay"":120,""max_speed"":110,""weight"":10000}}"); 200 Расстояние и время в пути. status: success — маршрут построен с учётом всех ограничений, without_restrictions — только без ограничений
Расстояние в метрах
success - нашли маршрут по всем параметрам фильтра. without_restrictions - не нашли маршрут по всем параметрам фильтра, но нашли маршрут без ограничений
Стоимость проезда по Платону в рублях РФ
Общее расстояние, преодоленное по Платону в метрах
Общее расстояние платных дорог в метрах
Расстояние в метрах
Время в пути в секундах с учетом параметров и задержек
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
404 Маршрут не найден (route_not_found) или не найдена одна из точек маршрута (point_not_found)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен (too_many_requests) или построение маршрута не уложилось в таймаут (request_timeout)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Получение маршрута (платный) post /gw/gis-rm/v1/route-info
| Параметр | Тип | Расположение | Описание |
|---|---|---|---|
visual-route | boolean | query | Вернуть в ответе поле `visual_route` — координаты маршрута для отрисовки на карте (обрезаются по `map_bounds`, если он передан). По умолчанию `false` Пример: true |
route-info | boolean | query | Вернуть в ответе поле `route_info` — сегменты маршрута с попутными населёнными пунктами, названиями трасс и расстояниями по типам дорог. По умолчанию `false` Пример: true |
Фильтр маршрута
Ограничения маршрута
Строить маршрут внутри одной страны
Значение по умолчанию: true
Не заезжать на МКАД
Значение по умолчанию: false
Не заезжать в Украину
Значение по умолчанию: true
Разрешить проезд по паромам При передаче значения по умолчанию будет учитываться расписание (пока расписания нет, поэтому всегда разрешены)
Значение по умолчанию: null
Разрешить проезд по зимникам При передаче значения по умолчанию будет учитываться расписание (декабрь, январь, февраль - зимники разрешены, остальные месяцы - запрещены)
Значение по умолчанию: null
Разрешить проезд по платным трассам
Значение по умолчанию: true
Тип маршрута для поиска
Значение по умолчанию: 2
Members:
- 1 - Самый короткий
- 2 - Самый быстрый
Задержка при пересечении границы в минутах
Значение по умолчанию: 120
Задержка при использовании паромов в минутах
Значение по умолчанию: 120
Максимальная скорость транспортного средства в км/ч
Значение по умолчанию: 110
Полная масса транспортного средства в килограммах
Значение по умолчанию: 10 000
Границы видимой части карты
Верхняя правая (северо-восточная) точка
Широта
Долгота
Нижняя левая (юго-западная) точка
Широта
Долгота
Точки маршрута в порядке следования
Идентификатор населённого пункта
Координаты точки
Широта
Долгота
Тип точки маршрута. Может быть маской.
Members:
- 0 - Просто город, который проезжаем мимо не заезжая в него.
- 1 - Начало маршрута
- 2 - Конец маршрута
- 4 - Точка загрузки
- 8 - Точка разгрузки
- 16 - Промежуточная точка
- 32 - Таможня
- 64 - На следующем отрезке в машине есть груз
Не заезжать в указанные регионы
Не заезжать в указанные страны
curl 'https://api.ati.su/gw/gis-rm/v1/route-info' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"options":{"within_country":true,"exclude_mkad":false,"exclude_ukraine":true,"allow_ferry":true,"allow_winter_road":false,"allow_toll_road":true,"strategy":1,"customs_delay":120,"ferry_delay":120,"max_speed":110,"weight":10000},"map_bounds":{"north_east":{"lat":60.866312,"lon":44.121093},"south_west":{"lat":54.591162,"lon":23.192138}},"nodes":[{"node_id":1,"geo_point":{"lat":59.8913,"lon":30.3727},"type":1}],"exclude_regions":[0],"exclude_countries":[0]}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/gis-rm/v1/route-info", "{""options"":{""within_country"":true,""exclude_mkad"":false,""exclude_ukraine"":true,""allow_ferry"":true,""allow_winter_road"":false,""allow_toll_road"":true,""strategy"":1,""customs_delay"":120,""ferry_delay"":120,""max_speed"":110,""weight"":10000},""map_bounds"":{""north_east"":{""lat"":60.866312,""lon"":44.121093},""south_west"":{""lat"":54.591162,""lon"":23.192138}},""nodes"":[{""node_id"":1,""geo_point"":{""lat"":59.8913,""lon"":30.3727},""type"":1}],""exclude_regions"":[0],""exclude_countries"":[0]}"); 200 Маршрут: расстояния и время в пути, при visual-route=true — visual_route, при route-info=true — route_info. status: success или without_restrictions
Маршрут: итоговые расстояния и время в пути, а также, по запросу, попутные пункты и координаты маршрута
Информация о попутных городах маршрута и названиях дорог.
Заполняется только при query-параметре route-info=true
Сегменты маршрута
Информация о точке
Тип точки маршрута. Может быть маской.
Members:
- 0 - Просто город, который проезжаем мимо не заезжая в него.
- 1 - Начало маршрута
- 2 - Конец маршрута
- 4 - Точка загрузки
- 8 - Точка разгрузки
- 16 - Промежуточная точка
- 32 - Таможня
- 64 - На следующем отрезке в машине есть груз
Информация о населённом пункте
Идентификатор города
Название города
Размер города
Members:
- 1 - Менее 10 000 жителей
- 2 - От 10 000 до 50 000 жителей
- 3 - От 50 000 до 100 000 жителей
- 4 - От 100 000 до 500 000 жителей
- 5 - От 500 000 до 1 000 000 жителей
- 6 - Более 1 000 000 жителей
Координаты. Если это ключевая точка маршрута, то её координаты. Если это попутный населенный пункт или таможня, то возвращаются их координаты центра
Широта
Долгота
Информация о регионе
Идентификатор региона
Название региона
Информация о стране
Идентификатор страны
Название страны
Информация об отрезке
Названия трасс, которые есть в сегменте
Расстояние по парому в метрах
Расстояние, преодоленное по дорогам второго класса и ниже в метрах
Расстояние по зимнику в метрах
Расстояние по дорогам общего пользования в метрах
Расстояние по трассам в метрах
Расстояние по автомагистралям в метрах
Расстояние, преодоленное по Платону в метрах
Расстояние, преодоленное по платным дорогам в метрах
Расстояние, преодоленное по МКАДу в метрах
Общее расстояние сегмента в метрах
Общее время проезда по сегменту в секундах
Координаты точек маршрута для отрисовки на карте.
Заполняется только при query-параметре visual-route=true; если передан map_bounds, координаты обрезаются по видимой части карты
Координаты отрезка маршрута
Тип платности дороги для визуализации (раскраска дорог)
Members:
- 1 - Платон
- 2 - Платная
- 4 - Просто дорога
- 8 - Машина без груза
Координаты точек отрезка маршрута
Расстояние в метрах
success - нашли маршрут по всем параметрам фильтра. without_restrictions - не нашли маршрут по всем параметрам фильтра, но нашли маршрут без ограничений
Стоимость проезда по Платону в рублях РФ
Общее расстояние, преодоленное по Платону в метрах
Общее расстояние платных дорог в метрах
Общее расстояние в метрах
Время в пути в секундах с учетом параметров и задержек
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
404 Маршрут не найден (route_not_found) или не найдена одна из точек маршрута (point_not_found)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен (too_many_requests) или построение маршрута не уложилось в таймаут (request_timeout)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Получение маршрута (платный) post /gw/oauth2/gis-rm/v1/route-info Тестирование запросов возможно только с авторизацией Bearer
| Параметр | Тип | Расположение | Описание |
|---|---|---|---|
visual-route | boolean | query | Вернуть в ответе поле `visual_route` — координаты маршрута для отрисовки на карте (обрезаются по `map_bounds`, если он передан). По умолчанию `false` Пример: true |
route-info | boolean | query | Вернуть в ответе поле `route_info` — сегменты маршрута с попутными населёнными пунктами, названиями трасс и расстояниями по типам дорог. По умолчанию `false` Пример: true |
Фильтр маршрута
Ограничения маршрута
Строить маршрут внутри одной страны
Значение по умолчанию: true
Не заезжать на МКАД
Значение по умолчанию: false
Не заезжать в Украину
Значение по умолчанию: true
Разрешить проезд по паромам При передаче значения по умолчанию будет учитываться расписание (пока расписания нет, поэтому всегда разрешены)
Значение по умолчанию: null
Разрешить проезд по зимникам При передаче значения по умолчанию будет учитываться расписание (декабрь, январь, февраль - зимники разрешены, остальные месяцы - запрещены)
Значение по умолчанию: null
Разрешить проезд по платным трассам
Значение по умолчанию: true
Тип маршрута для поиска
Значение по умолчанию: 2
Members:
- 1 - Самый короткий
- 2 - Самый быстрый
Задержка при пересечении границы в минутах
Значение по умолчанию: 120
Задержка при использовании паромов в минутах
Значение по умолчанию: 120
Максимальная скорость транспортного средства в км/ч
Значение по умолчанию: 110
Полная масса транспортного средства в килограммах
Значение по умолчанию: 10 000
Границы видимой части карты
Верхняя правая (северо-восточная) точка
Широта
Долгота
Нижняя левая (юго-западная) точка
Широта
Долгота
Точки маршрута в порядке следования
Идентификатор населённого пункта
Координаты точки
Широта
Долгота
Тип точки маршрута. Может быть маской.
Members:
- 0 - Просто город, который проезжаем мимо не заезжая в него.
- 1 - Начало маршрута
- 2 - Конец маршрута
- 4 - Точка загрузки
- 8 - Точка разгрузки
- 16 - Промежуточная точка
- 32 - Таможня
- 64 - На следующем отрезке в машине есть груз
Не заезжать в указанные регионы
Не заезжать в указанные страны
curl 'https://api.ati.su/gw/oauth2/gis-rm/v1/route-info' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"options":{"within_country":true,"exclude_mkad":false,"exclude_ukraine":true,"allow_ferry":true,"allow_winter_road":false,"allow_toll_road":true,"strategy":1,"customs_delay":120,"ferry_delay":120,"max_speed":110,"weight":10000},"map_bounds":{"north_east":{"lat":60.866312,"lon":44.121093},"south_west":{"lat":54.591162,"lon":23.192138}},"nodes":[{"node_id":1,"geo_point":{"lat":59.8913,"lon":30.3727},"type":1}],"exclude_regions":[0],"exclude_countries":[0]}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/oauth2/gis-rm/v1/route-info", "{""options"":{""within_country"":true,""exclude_mkad"":false,""exclude_ukraine"":true,""allow_ferry"":true,""allow_winter_road"":false,""allow_toll_road"":true,""strategy"":1,""customs_delay"":120,""ferry_delay"":120,""max_speed"":110,""weight"":10000},""map_bounds"":{""north_east"":{""lat"":60.866312,""lon"":44.121093},""south_west"":{""lat"":54.591162,""lon"":23.192138}},""nodes"":[{""node_id"":1,""geo_point"":{""lat"":59.8913,""lon"":30.3727},""type"":1}],""exclude_regions"":[0],""exclude_countries"":[0]}"); 200 Маршрут: расстояния и время в пути, при visual-route=true — visual_route, при route-info=true — route_info. status: success или without_restrictions
Маршрут: итоговые расстояния и время в пути, а также, по запросу, попутные пункты и координаты маршрута
Информация о попутных городах маршрута и названиях дорог.
Заполняется только при query-параметре route-info=true
Сегменты маршрута
Информация о точке
Тип точки маршрута. Может быть маской.
Members:
- 0 - Просто город, который проезжаем мимо не заезжая в него.
- 1 - Начало маршрута
- 2 - Конец маршрута
- 4 - Точка загрузки
- 8 - Точка разгрузки
- 16 - Промежуточная точка
- 32 - Таможня
- 64 - На следующем отрезке в машине есть груз
Информация о населённом пункте
Идентификатор города
Название города
Размер города
Members:
- 1 - Менее 10 000 жителей
- 2 - От 10 000 до 50 000 жителей
- 3 - От 50 000 до 100 000 жителей
- 4 - От 100 000 до 500 000 жителей
- 5 - От 500 000 до 1 000 000 жителей
- 6 - Более 1 000 000 жителей
Координаты. Если это ключевая точка маршрута, то её координаты. Если это попутный населенный пункт или таможня, то возвращаются их координаты центра
Широта
Долгота
Информация о регионе
Идентификатор региона
Название региона
Информация о стране
Идентификатор страны
Название страны
Информация об отрезке
Названия трасс, которые есть в сегменте
Расстояние по парому в метрах
Расстояние, преодоленное по дорогам второго класса и ниже в метрах
Расстояние по зимнику в метрах
Расстояние по дорогам общего пользования в метрах
Расстояние по трассам в метрах
Расстояние по автомагистралям в метрах
Расстояние, преодоленное по Платону в метрах
Расстояние, преодоленное по платным дорогам в метрах
Расстояние, преодоленное по МКАДу в метрах
Общее расстояние сегмента в метрах
Общее время проезда по сегменту в секундах
Координаты точек маршрута для отрисовки на карте.
Заполняется только при query-параметре visual-route=true; если передан map_bounds, координаты обрезаются по видимой части карты
Координаты отрезка маршрута
Тип платности дороги для визуализации (раскраска дорог)
Members:
- 1 - Платон
- 2 - Платная
- 4 - Просто дорога
- 8 - Машина без груза
Координаты точек отрезка маршрута
Расстояние в метрах
success - нашли маршрут по всем параметрам фильтра. without_restrictions - не нашли маршрут по всем параметрам фильтра, но нашли маршрут без ограничений
Стоимость проезда по Платону в рублях РФ
Общее расстояние, преодоленное по Платону в метрах
Общее расстояние платных дорог в метрах
Общее расстояние в метрах
Время в пути в секундах с учетом параметров и задержек
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
404 Маршрут не найден (route_not_found) или не найдена одна из точек маршрута (point_not_found)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен (too_many_requests) или построение маршрута не уложилось в таймаут (request_timeout)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Методы получения ближайших населённых пунктов с расстоянием по дорогам
Получение ближайших населённых пунктов с расстоянием по дорогам (платный) post /gw/gis-rm/v1/nearest-cities/with-roads-distance
Параметры поиска ближайших населённых пунктов с расстоянием по дорогам
Информация о начальной точке
Идентификатор населённого пункта
Координаты точки
Широта
Долгота
Радиус поиска в метрах
Значение по умолчанию: 200000
Максимальное значение: 300000
Количество населённых пунктов в выдаче
Значение по умолчанию: 5
Максимальное значение: 20
Количество крупных населённых пунктов в выдаче (население от 100 000 человек)
Значение по умолчанию: 3
Максимальное значение: 20
curl 'https://api.ati.su/gw/gis-rm/v1/nearest-cities/with-roads-distance' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"start_point":{"node_id":1,"geo_point":{"lat":59.8913,"lon":30.3727}},"radius":200000,"cities_count":5,"large_cities_count":3}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/gis-rm/v1/nearest-cities/with-roads-distance", "{""start_point"":{""node_id"":1,""geo_point"":{""lat"":59.8913,""lon"":30.3727}},""radius"":200000,""cities_count"":5,""large_cities_count"":3}"); 200 Ближайшие населённые пункты с расстоянием и временем в пути по дорогам
Информация о ближайшем населённом пункте
Идентификатор населённого пункта
Расстояние до населённого пункта по дорогам в метрах
Время в пути до населённого пункта в секундах
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен, повторите запрос позже (too_many_requests)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Получение ближайших населённых пунктов с расстоянием по дорогам (платный) post /gw/oauth2/gis-rm/v1/nearest-cities/with-roads-distance Тестирование запросов возможно только с авторизацией Bearer
Параметры поиска ближайших населённых пунктов с расстоянием по дорогам
Информация о начальной точке
Идентификатор населённого пункта
Координаты точки
Широта
Долгота
Радиус поиска в метрах
Значение по умолчанию: 200000
Максимальное значение: 300000
Количество населённых пунктов в выдаче
Значение по умолчанию: 5
Максимальное значение: 20
Количество крупных населённых пунктов в выдаче (население от 100 000 человек)
Значение по умолчанию: 3
Максимальное значение: 20
curl 'https://api.ati.su/gw/oauth2/gis-rm/v1/nearest-cities/with-roads-distance' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"start_point":{"node_id":1,"geo_point":{"lat":59.8913,"lon":30.3727}},"radius":200000,"cities_count":5,"large_cities_count":3}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/oauth2/gis-rm/v1/nearest-cities/with-roads-distance", "{""start_point"":{""node_id"":1,""geo_point"":{""lat"":59.8913,""lon"":30.3727}},""radius"":200000,""cities_count"":5,""large_cities_count"":3}"); 200 Ближайшие населённые пункты с расстоянием и временем в пути по дорогам
Информация о ближайшем населённом пункте
Идентификатор населённого пункта
Расстояние до населённого пункта по дорогам в метрах
Время в пути до населённого пункта в секундах
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен, повторите запрос позже (too_many_requests)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Метод получения всех населённых пунктов, до которых можно доехать по дорогам, не превышая заданное расстояние
Поиск в радиусе. Получение всех населённых пунктов, до которых можно доехать по дорогам, не превышая заданное расстояние (платный) Первый элемент ответа — исходный населённый пункт `city_id` с расстоянием `0`.
Остальные — населённые пункты из списка `cities_key` в пределах `radius`; порядок элементов не гарантируется. post /gw/gis-rm/v1/cities-in-radius
Параметры поиска населённых пунктов, до которых можно доехать по дорогам в пределах радиуса
Идентификатор населённого пункта
Ключ списка населённых пунктов для дополнительной фильтрации
Искать населённые пункты только внутри страны
Значение по умолчанию: true
Максимальное количество результатов
Минимальное значение: 0
Максимальное значение: 10000
Значение по умолчанию: 0 без лимита
Максимальное расстояние в метрах
Минимальное значение: 1 000
Максимальное значение: 300 000
curl 'https://api.ati.su/gw/gis-rm/v1/cities-in-radius' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"city_id":1,"cities_key":"active-cities","within_country":true,"limit":10,"radius":300000}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/gis-rm/v1/cities-in-radius", "{""city_id"":1,""cities_key"":""active-cities"",""within_country"":true,""limit"":10,""radius"":300000}"); 200 Населённые пункты в радиусе; первый элемент — исходный населённый пункт с расстоянием 0 (если его нет в графе дорог, в ответе только он)
Населённый пункт в радиусе и расстояние до него по дорогам.
Поля имеют короткие имена: c — идентификатор населённого пункта, d — расстояние в метрах
Идентификатор населённого пункта (поле c)
Расстояние до населённого пункта по дорогам в метрах (поле d)
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен, повторите запрос позже (too_many_requests)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Поиск в радиусе. Получение всех населённых пунктов, до которых можно доехать по дорогам, не превышая заданное расстояние (платный) Первый элемент ответа — исходный населённый пункт `city_id` с расстоянием `0`.
Остальные — населённые пункты из списка `cities_key` в пределах `radius`; порядок элементов не гарантируется. post /gw/oauth2/gis-rm/v1/cities-in-radius Тестирование запросов возможно только с авторизацией Bearer
Параметры поиска населённых пунктов, до которых можно доехать по дорогам в пределах радиуса
Идентификатор населённого пункта
Ключ списка населённых пунктов для дополнительной фильтрации
Искать населённые пункты только внутри страны
Значение по умолчанию: true
Максимальное количество результатов
Минимальное значение: 0
Максимальное значение: 10000
Значение по умолчанию: 0 без лимита
Максимальное расстояние в метрах
Минимальное значение: 1 000
Максимальное значение: 300 000
curl 'https://api.ati.su/gw/oauth2/gis-rm/v1/cities-in-radius' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"city_id":1,"cities_key":"active-cities","within_country":true,"limit":10,"radius":300000}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/gw/oauth2/gis-rm/v1/cities-in-radius", "{""city_id"":1,""cities_key"":""active-cities"",""within_country"":true,""limit"":10,""radius"":300000}"); 200 Населённые пункты в радиусе; первый элемент — исходный населённый пункт с расстоянием 0 (если его нет в графе дорог, в ответе только он)
Населённый пункт в радиусе и расстояние до него по дорогам.
Поля имеют короткие имена: c — идентификатор населённого пункта, d — расстояние в метрах
Идентификатор населённого пункта (поле c)
Расстояние до населённого пункта по дорогам в метрах (поле d)
400 Тело запроса не прошло валидацию, список ошибок — в error_list
Ошибки валидации тела запроса
Текстовый код ошибки, всегда validation_errors
Человекочитаемое описание ошибки
Список ошибок валидации: код ошибки и поле запроса с описанием проблемы
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
403 Нет активной лицензии на платный доступ (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
429 Превышен дневной лимит запросов по лицензии (access_denied)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено
503 Сервис перегружен, повторите запрос позже (too_many_requests)
Ошибка выполнения запроса
Текстовый код ошибки
Человекочитаемое описание ошибки
Дополнительная информация об ошибке. Поле передаётся, только если заполнено