Ответ после решения задачи оптимизации тура, содержащий маршруты следования каждого транспортного средства, пропущенные поставки и общую стоимость решения.
| JSON-представление |
|---|
{ "routes": [ { object ( |
| Поля | |
|---|---|
routes[] | Маршруты рассчитаны для каждого транспортного средства; i-й маршрут соответствует i-му транспортному средству в модели. |
requestLabel | Копия |
skippedShipments[] | Список всех пропущенных поставок. |
validationErrors[] | Список всех ошибок валидации, которые нам удалось обнаружить независимо. См. пояснение к сообщению |
processedRequest | В некоторых случаях мы изменяем входящий запрос перед его решением, то есть добавляем стоимость. Если solvedMode == TRANSFORM_AND_RETURN_REQUEST, изменённый запрос возвращается сюда. Экспериментальный вариант: более подробную информацию см. по адресу https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request . |
metrics | Показатели продолжительности, расстояния и использования для этого решения. |
OptimizeToursValidationError
Описывает ошибку или предупреждение, возникшее при проверке OptimizeToursRequest .
| JSON-представление |
|---|
{
"code": integer,
"displayName": string,
"fields": [
{
object ( |
| Поля | |
|---|---|
code | Ошибка проверки определяется парой ( Поля, следующие за этим разделом, предоставляют более подробную информацию об ошибке. МНОЖЕСТВЕННЫЕ ОШИБКИ : При наличии нескольких ошибок процесс валидации пытается вывести несколько из них. Подобно компилятору, это несовершенный процесс. Некоторые ошибки валидации являются «фатальными», то есть останавливают весь процесс валидации. Это касается, в частности, ошибок СТАБИЛЬНОСТЬ : значения |
displayName | Отображаемое имя ошибки. |
fields[] | Контекст ошибки может включать 0, 1 (чаще всего) или более полей. Например, ссылку на транспортное средство №4 и первый забор груза №2 можно реализовать следующим образом: Однако следует отметить, что количество |
errorMessage | Строка, описывающая ошибку, понятная человеку. Между СТАБИЛЬНОСТЬ : Нестабильно: сообщение об ошибке, связанное с данным |
offendingValues | Может содержать значение(я) поля(ей). Эта информация доступна не всегда. Ни в коем случае не следует полагаться на неё и использовать только для ручной отладки модели. |
FieldReference
Указывает контекст ошибки проверки. FieldReference всегда ссылается на заданное поле в этом файле и следует одной и той же иерархической структуре. Например, мы можем указать элемент №2 startTimeWindows транспортного средства №5, используя:
name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }
Однако мы опускаем сущности верхнего уровня, такие как OptimizeToursRequest или ShipmentModel чтобы не загромождать сообщение.
| JSON-представление |
|---|
{ "name": string, "subField": { object ( |
| Поля | |
|---|---|
name | Название поля, например, «транспортные средства». |
subField | Рекурсивно вложенное подполе, если необходимо. |
Поле объединения | |
index | Индекс поля, если повторяется. |
key | Ключ, если поле представляет собой карту. |
Метрики
Общие показатели, агрегированные по всем маршрутам.
| JSON-представление |
|---|
{
"aggregatedRouteMetrics": {
object ( |
| Поля | |
|---|---|
aggregatedRouteMetrics | Агрегируется по маршрутам. Каждая метрика представляет собой сумму (или максимальное значение для грузов) всех полей |
skippedMandatoryShipmentCount | Количество пропущенных обязательных поставок. |
usedVehicleCount | Количество использованных транспортных средств. Примечание: если маршрут транспортного средства пуст и |
earliestVehicleStartTime | Самое раннее время начала движения подержанного транспортного средства, рассчитанное как минимум по всем подержанным транспортным средствам Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: |
latestVehicleEndTime | Самое позднее время окончания для подержанного транспортного средства, рассчитанное как максимальное значение для всех подержанных транспортных средств Использует RFC 3339, согласно которому сгенерированный вывод всегда будет нормализован по оси Z и содержать 0, 3, 6 или 9 знаков после запятой. Также допускаются смещения, отличные от «Z». Примеры: |
costs | Стоимость решения, разбитая по полям запроса, связанным со стоимостью. Ключи — это пути-прототипы относительно входного запроса OptimizeToursRequest, например, "model.shipments.pickups.cost", а значения — общая стоимость, сгенерированная соответствующим полем стоимости, агрегированная по всему решению. Другими словами, costs["model.shipments.pickups.cost"] — это сумма всех затрат на самовывоз в рамках решения. Здесь подробно представлены все затраты, определенные в модели, за исключением затрат, связанных с TransitionAttributes, которые с января 2022 года отображаются только в агрегированном виде. |
totalCost | Общая стоимость решения. Сумма всех значений на карте затрат. |