overview
Public Transport API позволяет построить маршрут проезда на общественном транспорте.
С помощью Public Transport API можно за один вызов получить несколько вариантов проезда на указанных видах общественного транспорта и выбрать из них наиболее подходящий, исходя из общей продолжительности маршрута, количества пересадок, длины пешеходной части маршрута и других параметров.
Получение ключа доступа
Чтобы работать с API сервиса, нужно получить ключ доступа:
- Зарегистрируйтесь в личном кабинете Менеджер Платформы.
- Создайте демо-ключ или купите подписку для доступа к API.
Работать с ключами можно в Менеджере Платформы: подробнее см. в документации личного кабинета.
Пример запроса
Чтобы проложить маршрут, нужно отправить POST-запрос на endpoint /public_transport/2.0
. В строке запроса укажите ваш ключ API в качестве значения параметра key
.
https://routing.api.2gis.com/public_transport/2.0?key=YOUR_KEY
Координаты точек маршрута и виды общественного транспорта нужно передать в виде JSON в теле запроса.
Например, чтобы получить варианты проезда из точки A в точку B на автобусе или трамвае, отправьте следующий запрос:
curl --request POST \
--url 'https://routing.api.2gis.com/public_transport/2.0?key=API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"locale": "ru",
"source":
{
"name": "Точка А",
"point":
{
"lat": 51.734588,
"lon": 36.149328
}
},
"target":
{
"name": "Точка Б",
"point":
{
"lat": 51.734183,
"lon": 36.176865
}
},
"transport": ["bus", "tram"]
}'
Параметры source
и target
содержат координаты точек отправления и назначения. Параметр transport
содержит названия видов общественного транспорта, которые будут использованы при построении маршрута.
Полный список поддерживаемых видов транспорта можно посмотреть в Справочнике API.
Промежуточные точки
Помимо точек отправления и назначения вы можете указать до 10 промежуточных точек, через которые должен проходить маршрут. Добавьте параметр intermediate_points
с координатами и названиями точек. Пример для дополнения запроса выше:
"intermediate_points": [
{
"name": "Промежуточная точка",
"point": {
"lat": 51.745605,
"lon": 36.166322
}
}
],
В теле ответа прохождение этой точки будет помечено комментарием Вы достигли промежуточной точки
.
Пример ответа
Запрос вернет несколько вариантов проезда по маршруту (включая полностью пешеходные). Для каждого варианта проезда можно получить время в пути, используемые транспортные маршруты, количество пересадок, полную геометрию варианта проезда и подробную информацию о каждом перемещении в рамках проезда (путь на транспорте, переход на другую станцию и т.п.).
[
{
"id": "1",
"total_distance": 2893,
"total_duration": 2367,
"transfer_count": 1,
"crossing_count": 0,
"pedestrian": false,
"total_walkway_distance": "пешком 9 мин",
"transport": ["bus"],
"waypoints": [
{
"combined": false,
"routes_names": ["55Г"],
"subtype": "bus"
}
],
"movements": [...]
}
]
Продолжительность маршрута
Для каждого варианта проезда указывается общая длина маршрута (total_distance
) и общее время в пути (total_duration
). Продолжительность пешеходной части указана в виде локализованной строки в поле total_walkway_distance
.
"total_distance": 2893 // общая длина маршрута 2893 метра
"total_duration": 2367, // общее время в пути составляет около 40 минут
"total_walkway_distance": "пешком 9 мин" // из них 9 минут - пешеходный маршрут