Ответ после решения задачи оптимизации тура, содержащий маршруты, по которым движется каждое транспортное средство, пропущенные поставки и общую стоимость решения.
| JSON-представление | 
|---|
{ "routes": [ { object (  | 
| Поля | |
|---|---|
 routes[] |   Маршруты рассчитываются для каждого транспортного средства; i-й маршрут соответствует i-му транспортному средству в модели.  | 
 requestLabel |    Копия   | 
 skippedShipments[] |   Список всех отправлений пропущен.  | 
 validationErrors[] |    Список всех ошибок валидации, которые нам удалось обнаружить самостоятельно. См. объяснение «НЕСКОЛЬКО ОШИБОК» для сообщения   | 
 processedRequest |   В некоторых случаях мы модифицируем входящий запрос до его решения, т.е. добавляем затраты. Если solveMode == TRANSFORM_AND_RETURN_REQUEST, сюда возвращается измененный запрос. Экспериментальный вариант: дополнительную информацию см. на странице https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request .  | 
 metrics |   Показатели продолжительности, расстояния и использования для этого решения.  | 
Оптимизетурсвалидатионеррор
 Описывает ошибку или предупреждение, возникающее при проверке OptimizeToursRequest . 
| JSON-представление | 
|---|
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object ( | 
| Поля | |
|---|---|
 code |    Ошибка проверки определяется парой (  Поля, следующие за этим разделом, предоставляют дополнительную информацию об ошибке.  НЕСКОЛЬКО ОШИБОК : при наличии нескольких ошибок процесс проверки пытается вывести несколько из них. Как и компилятор, это несовершенный процесс. Некоторые ошибки проверки будут «фатальными», то есть они останавливают весь процесс проверки. Это относится, среди прочего, к ошибкам   СТАБИЛЬНОСТЬ :   | 
 displayName |   Отображаемое имя ошибки.  | 
 fields[] |   Контекст ошибки может включать 0, 1 (в большинстве случаев) или более полей. Например, обращение к транспортному средству № 4 и первому забору груза № 2 можно выполнить следующим образом:  Однако обратите внимание, что количество   | 
 errorMessage |    Читаемая человеком строка, описывающая ошибку. Между   СТАБИЛЬНОСТЬ : Нестабильно: сообщение об ошибке, связанное с данным   | 
 offendingValues |   Может содержать значения полей. Это не всегда доступно. На него совершенно не следует полагаться и использовать его только для ручной отладки модели.  | 
ПолеReference
 Указывает контекст для ошибки проверки. 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», а значения — это общая стоимость, сгенерированная соответствующим полем стоимости, агрегированная по всему решению. Другими словами, затраты["model.shipments.pickups.cost"] — это сумма всех затрат на самовывоз в рамках решения. Здесь подробно представлены все затраты, определенные в модели, за исключением затрат, связанных с TransitionAttributes, которые по состоянию на 2022/01 г. сообщаются только в агрегированном виде.  | 
 totalCost |   Полная стоимость решения. Сумма всех значений на карте затрат.  |