На этой странице в алфавитном порядке приведены таблицы параметров для следующих компонентов метода optimizeTours Route Optimization API:
В таблицах ниже перечислены и кратко описаны только объекты верхнего уровня и основные параметры. Полный список с подробными описаниями и всеми вложенными параметрами можно найти в документации по API.
Тело запроса
Тело запроса содержит следующие элементы, которые показаны на диаграмме справа и перечислены в таблице ниже:
OptimizeToursRequest– объект запроса верхнего уровня, содержащий модель и параметры решения.ShipmentModel: основная структура данных, содержащая информацию о доставках, транспортных средствах и глобальных ограничениях.Shipment: задача, включающая забор и доставку.VisitRequest– местоположение и ограничения для забора или доставки.
Vehicle– транспортное средство, доступное для выполнения перевозок.
| Родитель | Параметр | Тип объекта | Описание |
|---|---|---|---|
OptimizeToursRequest |
allowLargeDeadlineDespiteInterruptionRisk |
логическое значение (true/false) |
Если задано значение true, запрос обрабатывается, даже если время ожидания установлено на большое значение (более 30 минут), что может привести к сбоям в работе сервера. |
considerRoadTraffic |
логическое значение (true/false) |
Если true, то для построения маршрута используются данные о трафике. Если false, используются только скорости дорожной сети. |
|
geodesicMetersPerSecond |
число | Если для параметра useGeodesicDistances задано значение true, эта скорость используется для расчета времени в пути. |
|
injectedFirstSolutionRoutes[] |
Массив объектов (ShipmentRoute) |
Маршруты из предыдущего решения, с которых нужно начать оптимизацию. | |
injectedSolutionConstraint |
объект (InjectedSolutionConstraint) |
Ограничивает решение, чтобы оно было похоже на существующие маршруты, указывая, какие свойства должны быть сохранены, а какие могут быть смягчены. | |
interpretInjectedSolutionsUsingLabels |
логическое значение (true/false) |
Если задано значение true, сопоставляет отправления/транспортные средства на добавленных маршрутах по их label, а не по индексу массива. |
|
label |
string | Произвольный ярлык для идентификации запроса, возвращаемый в ответе. | |
maxValidationErrors |
Целое число | Указывает максимальное количество ошибок проверки, которые нужно вернуть. Если значение не указано, применяется ограничение по умолчанию. | |
model |
объект (ShipmentModel) |
Обязательно. Набор транспортных средств и грузов, которые необходимо оптимизировать. | |
populatePolylines |
логическое значение (true/false) |
Если задано значение true, возвращает закодированные ломаные линии для маршрутов. |
|
populateTransitionPolylines |
логическое значение (true/false) |
Если задано значение true, возвращает закодированные ломаные линии для отдельных переходов между посещениями. |
|
refreshDetailsRoutes[] |
Массив объектов (ShipmentRoute) |
Список маршрутов, которые нужно обновить. При этом пересчитываются ломаные линии, длительность и расстояния для существующих маршрутов без изменения последовательности посещений. | |
searchMode |
enum (SearchMode) |
RETURN_FAST (быстрые результаты) или CONSUME_ALL_AVAILABLE_TIME (наилучшее качество в пределах времени ожидания). |
|
solvingMode |
enum (SolvingMode) |
DEFAULT_SOLVE (по умолчанию) или VALIDATE_ONLY, чтобы проверить модель без решения. |
|
timeout |
длительность; | Максимальная продолжительность работы решателя (например, "30s", "300s"). | |
useGeodesicDistances |
логическое значение (true/false) |
Если true, расстояния и время в пути рассчитываются с использованием геодезических расстояний (по прямой) и скорости geodesicMetersPerSecond. |
|
ShipmentModel(часть OptimizeToursRequest) |
durationDistanceMatrices[] |
Массив объектов (DurationDistanceMatrix) |
Задает специальные матрицы длительности и расстояния, используемые для маршрутизации между местоположениями. |
durationDistanceMatrixDstTags[] |
Массив строк | Теги, определяющие пункты назначения (столбцы) для матриц продолжительности и расстояния. | |
durationDistanceMatrixSrcTags[] |
Массив строк | Теги, определяющие источники (строки) для пользовательских матриц продолжительности и расстояния. | |
globalDurationCostPerHour |
число | Стоимость за час общего времени маршрута, от самого раннего начала до самого позднего окончания. | |
globalEndTime |
Временная метка | Самое позднее время окончания события в модели. | |
globalStartTime |
Временная метка | Самое раннее время начала для любого события в модели. | |
maxActiveVehicles |
Целое число | Максимальное количество транспортных средств, которые могут быть активны в решении. | |
precedenceRules[] |
Массив объектов (PrecedenceRule) |
Правила, определяющие ограничения на порядок доставки определенных грузов. | |
shipments[] |
Массив объектов (Shipment) |
Список отправлений, которые нужно обслужить. | |
shipmentTypeIncompatibilities[] |
Массив объектов (ShipmentTypeIncompatibility) |
Правила, запрещающие перевозку грузов определенных типов одним и тем же транспортным средством. | |
shipmentTypeRequirements[] |
Массив объектов (ShipmentTypeRequirement) |
Правила, требующие, чтобы отправления определенных типов обслуживались одним и тем же транспортным средством. | |
transitionAttributes[] |
Массив объектов (TransitionAttributes) |
Указывает дополнительные расходы, задержки и ограничения расстояния для переходов между посещениями с определенными тегами. | |
vehicles[] |
Массив объектов (Vehicle) |
Список транспортных средств, доступных для выполнения перевозок. | |
Shipment(часть ShipmentModel) |
allowedVehicleIndices[] |
Массив целых чисел | Индексы транспортных средств, которым разрешено выполнять эту доставку. |
costsPerVehicle[] |
map (key: integer, value: number) | Дополнительные расходы, которые возникают, если доставку выполняет определенное транспортное средство. | |
costsPerVehicleIndices[] |
Массив целых чисел | Индексы транспортных средств, к которым применяются значения costsPerVehicle. |
|
deliveries[] |
Массив объектов (VisitRequest) |
Альтернативные варианты доставки. | |
ignore |
логическое значение (true/false) |
Если true, отправка игнорируется и не используется в оптимизации. |
|
label |
string | Пользовательский ярлык для идентификации отправления, возвращаемый в ответе. | |
loadDemands |
map (key: string, value: Load) |
Грузоподъемность (например, вес или объем), необходимая для перевозки этого груза. | |
penaltyCost |
число | Стоимость, если отправка не обслуживается. Если значение не задано, доставка обязательна. | |
pickups[] |
Массив объектов (VisitRequest) |
Альтернативные варианты получения отправления. | |
pickupToDeliveryAbsoluteDetourLimit |
длительность; | Максимальное абсолютное время объезда, разрешенное между посадкой и высадкой, по сравнению с прямым путем. | |
pickupToDeliveryRelativeDetourLimit |
число | Максимальное относительное отклонение от маршрута, допустимое для доставки (например, значение 2,0 означает, что общее время может не более чем в два раза превышать время в пути по прямому маршруту). | |
pickupToDeliveryTimeLimit |
длительность; | Максимально допустимая продолжительность от начала самовывоза до начала доставки. | |
shipmentType |
string | Классификация типов, используемая для правил несовместимости и требований. | |
VisitRequest(компонент pickups и deliveries в Shipment) |
arrivalLocation |
объект (LatLng) |
Географическое местоположение прибытия в виде координат широты и долготы. |
arrivalWaypoint |
объект (Waypoint) |
Место, куда прибывает транспортное средство для выполнения посещения. Определяется координатами или идентификатором места. | |
cost |
число | Расходы, которые возникнут, если решатель выберет этот запрос на посещение. | |
departureLocation |
объект (LatLng) |
Географические координаты места отправления (широта и долгота). | |
departureWaypoint |
объект (Waypoint) |
Место, откуда транспортное средство отправляется после завершения посещения. Если оно не указано, то считается, что оно совпадает со значением атрибута arrivalWaypoint. |
|
duration |
длительность; | Продолжительность посещения (время обслуживания), например время, необходимое для погрузки/разгрузки. | |
label |
string | Определенный пользователем ярлык для этого конкретного запроса на посещение, возвращаемый в ответе. | |
loadDemands |
map (key: string, value: Load) |
Требования, указывающие на изменение нагрузки при этом посещении (например, -1, чтобы высадить посылку). | |
tags[] |
Массив строк | Теги, прикрепленные к этому запросу на посещение. Они используются для расчета времени в пути между этим и другими посещениями с помощью transitionAttributes. |
|
timeWindows[] |
Массив объектов (TimeWindow) |
Разрешенные временные окна для прибытия в это место. | |
visitTypes[] |
Массив строк | Строки, описывающие тип посещения (например, "доставка", "установка"). Используется для применения extraVisitDurationForVisitType из модели Vehicle. |
|
Vehicle(часть ShipmentModel) |
breakRule |
объект (BreakRule) |
Определяет правила для перерывов (например, обязательный обеденный перерыв). |
costPerHour |
число | Стоимость часа от общей продолжительности маршрута. | |
costPerKilometer |
число | Стоимость за километр. | |
costPerTraveledHour |
число | Стоимость за час, пока транспортное средство движется. | |
endLocation |
объект (LatLng) |
Географическое местоположение конечной точки в виде координат широты и долготы. | |
endTags[] |
Массив строк | Теги, определяющие конечное состояние транспортного средства, используемые для атрибутов перехода. | |
endTimeWindows[] |
Массив объектов (TimeWindow) |
Допустимые временные окна для завершения маршрута транспортного средства. | |
endWaypoint |
объект (Waypoint) |
Географическое конечное местоположение с использованием путевой точки (координаты или идентификатор места). | |
extraVisitDurationForVisitType |
map (key: string, value: Duration) | Добавляет дополнительную продолжительность к посещениям на основе их visitType. |
|
fixedCost |
число | Фиксированная стоимость, которая применяется, если транспортное средство используется, независимо от расстояния или продолжительности маршрута. | |
ignore |
логическое значение (true/false) |
Если задано значение true, транспортное средство игнорируется и не используется для оптимизации. |
|
label |
string | Пользовательский ярлык для транспортного средства, возвращаемый в ответе. | |
loadLimits |
map (key: string, value: LoadLimit) |
Вместимость транспортных средств (например, максимальный вес или объем). | |
routeDistanceLimit |
объект (DistanceLimit) |
Строгое или нестрогое ограничение на общую протяженность маршрута транспортного средства. | |
routeDurationLimit |
объект (DurationLimit) |
Строгое или нестрогое ограничение на общую продолжительность маршрута транспортного средства. | |
routeModifiers |
объект (RouteModifiers) |
Одно или несколько ограничений, например избегать платных дорог, шоссе или паромов. | |
startLocation |
объект (LatLng) |
Географическое местоположение начала маршрута в виде координат широты и долготы. | |
startTags[] |
Массив строк | Теги, определяющие начальное состояние транспортного средства, используемые для атрибутов перехода. | |
startTimeWindows[] |
Массив объектов (TimeWindow) |
Допустимые временные интервалы для начала маршрута. | |
startWaypoint |
объект (Waypoint) |
Географическое местоположение начала маршрута, заданное с помощью путевой точки (координат или идентификатора места). | |
travelDurationLimit |
объект (DurationLimit) |
Строгое или нестрогое ограничение на общую продолжительность поездки (без учета времени ожидания и обслуживания) транспортного средства. | |
travelDurationMultiple |
число | Множитель, применяемый к времени в пути (например, 1,5 замедляет движение на 50 %). | |
travelMode |
enum (TravelMode) |
Способ передвижения (например, DRIVING, WALKING). Влияет на время в пути и расстояния. |
|
unloadingPolicy |
enum (UnloadingPolicy) |
Определяет порядок разгрузки (например, LIFO или LAST_IN_FIRST_OUT). |
|
usedIfRouteIsEmpty |
логическое значение (true/false) |
Если true, транспортное средство считается используемым даже без отправлений. Для него заданы фиксированные расходы и пункты отправления и назначения. |
Тело ответа
Тело ответа включает следующие элементы, которые показаны на диаграмме справа и перечислены в таблице ниже:
OptimizeToursResponse– объект ответа верхнего уровня, содержащий оптимизированные маршруты и показатели.Metrics– общая стоимость и статистика выполнения для решения.ShipmentRoute– последовательность посещений и маршрут, назначенные одному транспортному средству.Visit– остановка на маршруте для получения или доставки.Transition– путь и продолжительность поездки между двумя остановками.AggregatedMetrics– суммарные значения продолжительности, расстояния и других показателей. Этот элемент может присутствовать как вMetrics, так и вShipmentRoute.
| Родитель | Параметр | Тип объекта | Описание |
|---|---|---|---|
OptimizeToursResponse |
metrics |
объект (Metrics) |
Агрегированные показатели для решения, включая общую стоимость, общее расстояние, общую продолжительность и количество использований транспортных средств. |
requestLabel |
string | Ярлык, скопированный из поля label запроса. Используется для сопоставления ответа с исходным запросом. |
|
routes[] |
Массив объектов (ShipmentRoute) |
Список маршрутов, рассчитанных для каждого транспортного средства. Содержит запись для каждого транспортного средства, независимо от его использования. | |
skippedShipments[] |
Массив объектов (SkippedShipment) |
Список пропущенных (необслуженных) отправлений с указанием причин. | |
validationErrors[] |
Массив объектов (OptimizeToursValidationError) |
Список ошибок проверки, обнаруженных во входной модели. Это поле заполняется, если для параметра solvingMode задано значение VALIDATE_ONLY или если при решении возникли ошибки. |
|
Metrics(часть OptimizeToursResponse) |
aggregatedRouteMetrics |
объект (AggregatedMetrics) |
Агрегированная статистика по всем маршрутам, например общее расстояние, общая продолжительность и время ожидания. |
costs |
map (key: string, value: number) | Разбивка расходов по типам (например, "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
earliestVehicleStartTime |
Временная метка | Самое раннее время начала среди всех используемых транспортных средств. | |
latestVehicleEndTime |
Временная метка | Самое позднее время окончания среди всех используемых транспортных средств. | |
skippedMandatoryShipmentCount |
Целое число | Количество обязательных поставок, которые были пропущены. | |
totalCost |
число | Общая стоимость решения, суммирующая все затраты на маршрут и штрафы за пропущенные поставки. | |
usedVehicleCount |
Целое число | Количество транспортных средств, используемых в решении. | |
AggregatedMetrics(входит в Metrics и ShipmentRoute) |
breakDuration |
длительность; | Общая продолжительность перерывов на всех маршрутах. |
costs |
map (key: string, value: number) | Разбивка расходов по типам (например, "model.vehicles.cost_per_kilometer", "model.shipments.penalty_cost"). | |
delayDuration |
длительность; | Общая продолжительность задержек на всех маршрутах. | |
earliestVehicleStartTime |
Временная метка | Самое раннее время начала среди всех используемых транспортных средств. | |
latestVehicleEndTime |
Временная метка | Самое позднее время окончания среди всех используемых транспортных средств. | |
maxLoads |
map (key: string, value: VehicleLoad) |
Максимальная нагрузка, перевозимая любым транспортным средством в любой точке решения, с ключом по типу нагрузки. | |
performedShipmentCount |
Целое число | Общее количество доставок, выполненных всеми транспортными средствами. | |
skippedMandatoryShipmentCount |
Целое число | Количество обязательных поставок, которые были пропущены. | |
totalCost |
число | Общая стоимость решения, суммирующая все затраты на маршрут и штрафы за пропущенные поставки. | |
totalDuration |
длительность; | Общая продолжительность всех маршрутов (время в пути + время ожидания + задержка + перерыв + посещение). | |
travelDistanceMeters |
число | Общее расстояние в метрах по всем маршрутам. | |
travelDuration |
длительность; | Общая продолжительность поездки по всем маршрутам. | |
usedVehicleCount |
Целое число | Количество транспортных средств, используемых в решении. | |
visitDuration |
длительность; | Общая продолжительность посещений (погрузки/разгрузки) на всех маршрутах. | |
waitDuration |
длительность; | Общая продолжительность ожидания на всех маршрутах. | |
ShipmentRoute(часть OptimizeToursResponse) |
breaks[] |
Массив объектов (Break) |
Список перерывов, сделанных транспортным средством во время маршрута. |
hasTrafficInfeasibilities |
логическое значение (true/false) |
Указывает, есть ли на маршруте невыполнимые задачи, связанные с дорожным движением. | |
metrics |
объект (AggregatedMetrics) |
Показатели, относящиеся к этому маршруту, например общее расстояние и время в пути. | |
routeCosts |
map (key: string, value: number) | Разбивка расходов на этот маршрут. Ключи – это типы расходов (например, cost_per_hour), а значения – суммы. | |
routePolyline |
объект (EncodedPolyline) |
Закодированная ломаная линия, представляющая полный маршрут на карте. | |
routeTotalCost |
число | Общая стоимость маршрута, сумма всех стоимостей на карте routeCosts. |
|
transitions[] |
Массив объектов (Transition) |
Упорядоченный список переходов (этапов поездки), соединяющих посещения. | |
vehicleEndTime |
Временная метка | Время, когда транспортное средство завершает свой маршрут. | |
vehicleIndex |
Целое число | Индекс транспортного средства в источнике ShipmentModel, которое выполняет этот маршрут. |
|
vehicleLabel |
string | Заданный пользователем ярлык транспортного средства, скопированный из модели запроса. | |
vehicleStartTime |
Временная метка | Время, когда транспортное средство начинает движение по маршруту. | |
visits[] |
Массив объектов (Visit) |
Упорядоченная последовательность посещений (заборов и доставок), выполненных транспортным средством на этом маршруте. | |
Visit(часть ShipmentRoute) |
detour |
длительность; | Дополнительное время объезда, вызванное этим посещением, по сравнению с прямым путем между предыдущим и следующим посещениями. |
isPickup |
логическое значение (true/false) |
Если true, то это посадка пассажиров. Если указано значение false, то это доставка. |
|
loadDemands |
map (key: string, value: Load) |
Требования к загрузке, удовлетворяемые этим посещением (например, -1 для доставки). Это копия соответствующих требований к нагрузке VisitRequest. |
|
shipmentIndex |
Целое число | Индекс поля Shipment в исходной модели, которую обслуживает это посещение. |
|
shipmentLabel |
string | Ярлык доставки, скопированный из ShipmentModel. |
|
startTime |
Временная метка | Время, на которое запланировано начало посещения. | |
visitLabel |
string | Ярлык запроса на посещение, скопированный из VisitRequest в модели. |
|
visitRequestIndex |
Целое число | Индекс VisitRequest в списке самовывоза или доставки, которому соответствует это посещение. |
|
Transition(часть ShipmentRoute) |
breakDuration |
длительность; | Продолжительность перерывов, сделанных во время этого перехода. |
delayDuration |
длительность; | Продолжительность задержки, возникшей во время этого перехода (например, раннее прибытие и ожидание временного окна). | |
routePolyline |
объект (EncodedPolyline) |
Закодированная ломаная линия, представляющая путь этого конкретного перехода. | |
routeToken |
string | Непрозрачный токен, который можно передать в Google Navigation SDK, чтобы восстановить маршрут во время навигации. | |
startTime |
Временная метка | Время начала перехода. | |
totalDuration |
длительность; | Общая продолжительность перехода, включая время в пути, ожидания, перерывов и задержек. | |
trafficInfoUnavailable |
логическое значение (true/false) |
Если true, то данные о трафике для этого перехода недоступны. |
|
travelDistanceMeters |
число | Расстояние, пройденное во время этого перехода, в метрах. | |
travelDuration |
длительность; | Продолжительность поездки во время этого перехода. | |
vehicleLoads |
map (key: string, value: VehicleLoad) |
Груз, перевозимый транспортным средством во время этого перехода, с ключом по типу груза (например, "вес"). | |
waitDuration |
длительность; | Время ожидания перед началом следующего посещения. |