Для логистики
Новый сервис Matrix API в рамках API маршрутизации обеспечивает быстрое вычисление времени и расстояния между набором координат с учетом типа транспорта и ситуации на дороге.
#
Matrix APIMatrix API позволяет устанавливать координаты пунктов отправления отдельно от местоположений пунктов назначения. Множество пунктов отправления может не пересекаться с множеством пунктов назначения. Другими словами, координаты пунктов назначения не обязаны включать в себя какие-либо координаты из пунктов отправления. Матрица времени и расстояний может возвращать строковую матрицу, столбцовую матрицу или общую матрицу, вычисляющую время и расстояние в зависимости от ваших параметров для пунктов отправления и пунктов назначения. Общий случай - это матрица, упорядоченная по строкам, содержащая время и расстояние от каждого пункта отправления до каждого пункта назначения. Строковый вектор рассматривается как матрица времени и расстояния "один ко многим", где есть один пункт отправления и несколько пунктов назначения. Возвращается время и расстояние от пункта отправления до всех пунктов назначения. Столбцовая матрица представляет собой матрицу времени и расстояния "многие к одному", где есть много пунктов отправления и одно пункт назначения. Еще один специальный случай - когда список координат пунктов отправления совпадает с списком координат пунктов назначения. Здесь возвращается диагональная матрица (квадратная матрица с [0,0.00] на диагональных элементах). Этот специальный случай часто используется в качестве входных данных для оптимизации маршрутных задач.
#
Входные данныеТипичный запрос будет иметь вид https://maps.starline.ru/api/routing/matrix/sources_to_targets?json={}
,
где JSON внутри {}
включает в себя хотя бы одну координату для sources
и targets
, а также тип транспорта.
Например, находясь в офисе, вы хотите узнать время и расстояния до нескольких ресторанов, где можно пообедать, а также время и расстояния от каждого ресторана до железнодорожной станции, откуда вы поедете домой. Подобный запрос поможет определить, где оптимальнее пообедать.
one-to-many используя /sources_to_targets?
{"sources":[{"lat":40.744014,"lon":-73.990508}],"targets":[{"lat":40.744014,"lon":-73.990508},{"lat":40.739735,"lon":-73.979713},{"lat":40.752522,"lon":-73.985015},{"lat":40.750117,"lon":-73.983704},{"lat":40.750552,"lon":-73.993519}],"costing":"pedestrian"}
many-to-one используя /sources_to_targets?
{"sources":[{"lat":40.744014,"lon":-73.990508},{"lat":40.739735,"lon":-73.979713},{"lat":40.752522,"lon":-73.985015},{"lat":40.750117,"lon":-73.983704},{"lat":40.750552,"lon":-73.993519}],"targets":[{"lat":40.750552,"lon":-73.993519}],"costing":"pedestrian"}
many-to-many используя /sources_to_targets?
{"sources":[{"lat":40.744014,"lon":-73.990508},{"lat":40.739735,"lon":-73.979713},{"lat":40.752522,"lon":-73.985015},{"lat":40.750117,"lon":-73.983704},{"lat":40.750552,"lon":-73.993519}],"targets":[{"lat":40.744014,"lon":-73.990508},{"lat":40.739735,"lon":-73.979713},{"lat":40.752522,"lon":-73.985015},{"lat":40.750117,"lon":-73.983704},{"lat":40.750552,"lon":-73.993519}],"costing":"pedestrian"}
#
Параметры source и targetПри использовании метода sources_to_targets
необходимо указывать sources
и targets
как упорядоченный список координат в виде JSON массива.
Для каждой координаты в sources
и targets
доступны следующие параметры:
Параметр | Описание |
---|---|
lat | Долгота |
lon | Широта |
date_time | Дата/время когда курьер должнен быть по адресу в формате ISO 8601 (YYYY-MM-DDThh:mm). |
#
Типы транспортаСервис Matrix API поддерживает следующие типы транспорта: auto
, bicycle
и pedestrian
. Дополнение: на данный момент мультимодальность не поддерживается в данном сервисе.
#
Дополнительные параметрыOptions | Description |
---|---|
id | Вы можете дать наименование вашему запросу. Если id указан, то он будет содержаться также в ответе. |
matrix_locations | Для запросов "один ко многим" или "многие к одному" этот параметр указывает минимальное количество координат, удовлетворяющих запросу. Однако, при указании этой опции, допускается возвращение частичного результата. Это фактически эквивалентно "найти ближайшие/лучшие matrix_locations из полного набора координат". |
date_time | Дата и время для адреса/координаты.
|
#
Время-зависимые матрицыБольшего регулирования временных рамок можно получить используя параметр date_time
для каждого адреса прибытия/отправления.
Если же вы устанавливаете глобальный параметр date_time
то Matrix API автоматически использует его и
установит значения date_time.value
для всех адресов отправлений, в случае date_time.type = 0/1
, или для всех пунктов назначения, если date_time.type = 2
.
#
Ответ на запрос матрицы расстоянийСтандартный ответ сервис будет содержать примерно следующий набор полей:
Поле | Описание |
---|---|
sources_to_targets | Массив времен и расстояний между пунктами отправления и пунктами прибытия. Массив является row-ordered. Это значит что время и координаты первого адреса ко всем остальным формирует первую строку матрицы, далее второй адрес ко всем остальным и так далее |
distance | Расчитанное расстояние между набором координат. Это поле всегда будет 0.00 для первого элемента массив в случае one_to_many , для последнего в случае many_to_one , или первый и последний в случае many_to_many . |
time | Расчитанное время между всем набором координат. Это поле всегда будет 0 для первого элемента массив в случае one_to_many , для последнего в случае many_to_one , или первый и последний в случае many_to_many . |
to_index | Индекс пункта назначения в массиве locations |
from_index | Индекс пункта отправления в массиве locations |
locations | Массив координат lat/lng, которые были переданы в исходном запросе. |
units | Метрическая система, использованная при расчетах. По умолчанию километры. |