OptimizeToursResponse

Thông tin phản hồi sau khi giải quyết vấn đề về việc tối ưu hoá chuyến tham quan, trong đó có thông tin về các tuyến đường của mỗi chiếc xe, những lô hàng bị bỏ qua và tổng chi phí của giải pháp.

Biểu diễn dưới dạng JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
Trường
routes[]

object (ShipmentRoute)

Tuyến đường được tính toán cho mỗi chiếc xe; tuyến đường thứ i tương ứng với xe thứ i trong mô hình.

requestLabel

string

Bản sao của OptimizeToursRequest.label, nếu nhãn được chỉ định trong yêu cầu.

skippedShipments[]

object (SkippedShipment)

Danh sách tất cả các lô hàng đã bỏ qua.

validationErrors[]

object (OptimizeToursValidationError)

Danh sách tất cả các lỗi xác thực mà chúng tôi có thể phát hiện riêng. Xem lỗi "MULTIPLE ERRORS" nội dung giải thích cho thông báo OptimizeToursValidationError.

metrics

object (Metrics)

Các chỉ số về thời lượng, quãng đường và mức sử dụng cho giải pháp này.

OptimizeToursValidationError

Mô tả lỗi gặp phải khi xác thực OptimizeToursRequest.

Biểu diễn dưới dạng JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
Trường
code

integer

Lỗi xác thực do cặp (code, displayName) luôn xuất hiện xác định.

Các trường khác (bên dưới) cung cấp thêm ngữ cảnh về lỗi.

Nhiều lỗi: Khi có nhiều lỗi, quá trình xác thực sẽ cố gắng đưa ra một vài lỗi. Giống như một trình biên dịch, đây là một quy trình không hoàn hảo. Một số lỗi xác thực sẽ có trạng thái "nghiêm trọng", nghĩa là khiến toàn bộ quá trình xác thực bị ngừng. Đây là trường hợp của lỗi displayName="UNSPECIFIED", trong số các lỗi khác. Một số lỗi có thể khiến quá trình xác thực bỏ qua các lỗi khác.

TÍNH NĂNG: codedisplayName phải rất ổn định. Tuy nhiên, các mã và tên hiển thị mới có thể xuất hiện theo thời gian, điều này có thể khiến một yêu cầu (không hợp lệ) nhất định tạo ra một cặp khác (code, displayName) vì lỗi mới đã ẩn mã cũ (xem phần "Lỗi NHIỀU LẦN").

THAM CHIẾU: Danh sách tất cả các cặp (mã, tên):

  • KHÔNG XÁC ĐỊNH = 0;
  • VALIDATION_TIMEOUT_ERROR = 10; Không thể hoàn tất quy trình xác thực trong thời hạn.
  • REQUEST_OPTIONS_ERROR = 12;

    • REQUEST_OPTIONS_INVALID_SOLVING_MODE = 1201;
    • REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203;
    • REQUEST_OPTIONS_INVALID_GEODESIC_ Số lượt của chúng ta sẽ được đo trên mỗi lần lượt hiển thị = 1204;
    • REQUEST_OPTIONS_GEODESIC_Vượt lượt chỉ số của bạn
    • REQUEST_OPTIONS_MISSING_GEODESIC_ Màu_PER_SECONDS = 1206;
    • REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE = 1207;
    • REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208;
    • REQUEST_OPTIONS_DU LỊCH_MODE_INCOMPATIBLE_WITH_TRAFFIC = 1211;
    • REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212;
    • REQUEST_OPTIONS_INVALID_TRAFFIC_FLAVOR = 1213;
    • REQUEST_OPTIONS_TRAFFIC_ENABLED_WITHOUT_GLOBAL_START_TIME = 1214;
    • REQUEST_OPTIONS_TRAFFIC_ENABLED_WITH_PRECEDENCES = 1215;
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_MODE_INVALID = 1216;
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_ENABLED_WITHOUT_TRAFFIC = 1217;
  • Hàm INJECTED_SOLUTION_ERROR = 20;
    • INJECTED_SOLUTION_MISSING_LABEL = 2000;
    • INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
    • INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002;
    • INJECTED_SOLUTION_INFEASIBLE_SAU_GETTING_Travel_TIMES = 2003;
    • INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ ghép_du lịch = 2004;
    • INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005;
    • INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006;
    • INJECTED_SOLUTION_XUẤT_THIẾT_KHÔNG_KHÔNG_DÙNG_NỔI_TIẾNG = 2008;
    • INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010;
  • LỖI_HÀO_MUA_HÀNG_MẶT = 22;
    • GỬI_MÔ_ HÌNH_TOO_LARGE = 2200;
    • shippingMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201;
    • shippingMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202;
    • shippingMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203;
    • shippingMENT_MODEL_GLOBAL_START_TIME_ SAU_GLOBAL_END_TIME = 2204;
    • shippingMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205;
    • GỬI_MÔ_ HÌNH_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206;
    • shippingMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207;
  • INDEX_ERROR = 24;
  • TAG_ERROR = 26;
  • Time_WINDOW_ERROR = 28;
    • Time_WINDOW_INVALID_START_TIME = 2.800;
    • Time_WINDOW_INVALID_END_TIME = 2801;
    • Time_WINDOW_INVALID_SOFT_START_TIME = 2802;
    • Time_WINDOW_INVALID_SOFT_END_TIME = 2803;
    • Time_WINDOW_OUTSIDE_GLOBAL_TIME_WINDOW = 2804;
    • Time_WINDOW_START_TIME_ SAU_END_TIME = 2805;
    • Time_WINDOW_INVALID_COST_PER_HOUR_BEFORE_SOFT_START_TIME = 2806;
    • Time_WINDOW_INVALID_COST_PER_HOUR_CAST_SOFT_END_TIME = 2807;
    • Time_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME = 2808;
    • Time_WINDOW_COST_ SAU_SOFT_END_TIME_WITHOUT_SOFT_END_TIME = 2809;
    • Time_WINDOW_SOFT_START_TIME_WITHOUT_COST_BEFORE_SOFT_START_TIME = 2810;
    • Time_WINDOW_SOFT_END_TIME_WITHOUT_COST_www_SOFT_END_TIME = 2811;
    • Time_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812;
    • Time_WINDOW_START_TIME_ SAU_SOFT_START_TIME = 2813;
    • Time_WINDOW_SOFT_START_TIME_ SAU_END_TIME = 2814;
    • Time_WINDOW_START_TIME_ SAU_SOFT_END_TIME = 2815;
    • Time_WINDOW_SOFT_END_TIME_ SAU_END_TIME = 2816;
    • Time_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS = 2817;
    • Time_WINDOW_COST_SAU_SOFT_END_TIME_SET_AND_MULTIPLE_WINDOWS = 2818;
    • TRANSITION_ATTRIBUTES_ERROR = 30;
    • TRANSITION_ATTRIBUTES_INVALID_COST = 3000;
    • TRANSITION_ATTRIBUTES_INVALID_COST_PER_KILOMETER = 3001;
    • TRANSITION_ATTRIBUTES_DUPLICATE_TAG_PAIR = 3002;
    • TRANSITION_ATTRIBUTES_DISTANCE_LIMIT_MAX_DISTANCE_UNSUPPORTED = 3003;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004;
    • TRANSITION_ATTRIBUTES_costING_SOURCE_TAGS_FIELDS = 3005;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_POINT_TAGS = 3006;
    • TRANSITION_ATTRIBUTES_MILESTONEING_PLACE_TAGS_FIELDS = 3007;
    • TRANSITION_ATTRIBUTES_BLANK_DURATION_NEGATIVE_OR_NAN = 3008;
    • TRANSITION_ATTRIBUTES_DURATION_DURATION_EXCEEDS_GLOBAL_DURATION = 3009;
  • AMOUNT_ERROR = 31;
    • AMOUNT_NEGATIVE_VALUE = 3.100;
  • TẢI_LIMIT_ERROR = 33;
    • Nạp_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303;
    • TẢI_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304;
    • TẢI_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305;
    • TẢI_LIMIT_NEGATIVE_SOFT_MAX = 3306;
    • load_LIMIT_MIXED_DEMAND_TYPE = 3307;
    • Nạp_LIMIT_MAX_TẢI_NEGATIVE_VALUE = 3308;
    • TẢI_LIMIT_SOFT_MAX_ABOVE_MAX = 3309;
  • INTERVAL_ERROR = 34;
    • INTERVAL_MIN_EXCEEDS_MAX = 3401;
    • INTERVAL_NEGATIVE_MIN = 3402;
    • INTERVAL_NEGATIVE_MAX = 3403;
    • INTERVAL_MIN_EXCEEDS_CAPACITY = 3404;
    • INTERVAL_MAX_EXCEEDS_CAPACITY = 3405;
  • KHOẢNG_QUÃNG_QUÃNG_ĐƯỜNG = 36;
    • KHOẢNG_Khoảng_Khoảng_SỐ_TRÊN_ĐỐI_KHÔNG_ĐƯỢC_COST_SAU_SOFT_MAX = 3602;
    • {0/}
    • Khoảng cách_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606;
  • mất [5_LIMIT_ERROR] = 38;
    • ↗_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800;
    • [Tên người] và [TÊN NGƯỜI] = 3801;
    • [7]
    • [TÊN NGƯỜI] / [TÊN NGƯỜI] = 3803;
    • [Tên người] và [TÊN NGƯỜI] = 3804;
    • [.__.]
    • AVD_LIMIT_INVALID_COST_6_QUADRATIC_SOFT_MAX = 3806;
    • AVD_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_HOUR = 3807;
    • AVD_LIMIT_COST_PER_SQUARE_HOUR_WITHOUT_QUADRATIC_SOFT_MAX = 3808;
    • [TÊN NGƯỜI] / [TÊN NGƯỜI] = 3809;
    • AVD_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810;
    • ↗_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811;
    • ↗_LIMIT_CHANGE_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE = 3812;
    • ↗_LIMIT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3813;
    • DURATION_LIMIT_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3814;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_EXCEEDS_GLOBAL_DURATION = 3815;
  • ĐỊA_CHỈ_GỬI_LỖI = 40;
    • shippingMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014;
    • shippingMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000;
    • shippingMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4001;
    • shippingMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015;
    • shippingMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016;
    • shippingMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002;
    • shippingMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003;
    • shippingMENT_EMPTY_shippingMENT_TYPE = 4004;
    • GỬI_KHÔNG_PICKUP_KHÔNG_PHÂN_PHÂN = 4005;
    • shippingMENT_INVALID_PENALTY_COST = 4006;
    • shippingMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007;
    • shippingMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008;
    • shippingMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITHOUT_INDEX = 4009;
    • shippingMENT_INCONSISTENT_COST_FOR_VEHICLE_SIZE_WITH_INDEX = 4010;
    • shippingMENT_INVALID_COST_FOR_VEHICLE = 4011;
    • shippingMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012;
    • shippingMENT_DUPLICATE_COST_FOR_VEHICLE_INDEX = 4013;
  • VEHICLE_ERROR = 42;
    • VEHICLE_EMPTY_REQUIRED_OPERATOR_TYPE = 4200;
    • VEHICLE_DUPLICATE_REQUIRED_OPERATOR_TYPE = 4201;
    • VEHICLE_NO_OPERATOR_WITH_REQUIRED_OPERATOR_TYPE = 4202;
    • VEHICLE_EMPTY_START_TAG = 4203;
    • VEHICLE_DUPLICATE_START_TAG = 4204;
    • VEHICLE_EMPTY_END_TAG = 4205;
    • VEHICLE_DUPLICATE_END_TAG = 4206;
    • VEHICLE_EXTRA_VISIT_DURATION_NEGATIVE_OR_NAN = 4207;
    • VEHICLE_EXTRA_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4208;
    • VEHICLE_EXTRA_VISIT_DURATION_EMPTY_KEY = 4209;
    • VEHICLE_FIRST_shippingMENT_INDEX_OUT_OF_BOUNDS = 4210;
    • VEHICLE_FIRST_shippingMENT_OFFSETD = 4211;
    • VEHICLE_FIRST_shippingMENT_NOT_BOUND = 4212;
    • VEHICLE_LAST_shippingMENT_INDEX_OUT_OF_BOUNDS = 4213;
    • VEHICLE_LAST_shippingMENT_FAILD = 4214;
    • VEHICLE_LAST_shippingMENT_NOT_BOUND = 4215;
    • VEHICLE_ Quyết định NGUYỆT = 4216;
    • VEHICLE_INVALID_COST_PER_KILOMETER = 4217;
    • VEHICLE_INVALID_COST_PER_HOUR = 4218;
    • VEHICLE_INVALID_COST_PER_travelED_HOUR = 4219;
    • VEHICLE_INVALID_FIXED_COST = 4220;
    • VEHICLE_INVALID_DAY_DURATION_MULTIPLE = 4221;
    • VEHICLE_Travel_DURATION_MULTIPLE_WITH_shippingMENT_PD_DETOUR_LIMITS = 4223;
    • VEHICLE_MATRIX_INDEX_WITH_shippingMENT_PD_DETOUR_LIMITS = 4224;
    • VEHICLE_adsbygoogle_DURATION_LONGER_THAN_DURATION_LIMIT = 4222;
  • VISIT_REQUEST_ERROR = 44;
    • VISIT_REQUEST_EMPTY_TAG = 4400;
    • VISIT_REQUEST_DUPLICATE_TAG = 4401;
    • VISIT_REQUEST_DURATION_NEGATIVE_OR_NAN = 4404;
    • VISIT_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4405;
  • PRECEDENCE_ERROR = 46;
  • BREAK_ERROR = 48;
    • BREAK_QU_EMPTY = 4800;
    • BREAK_REQUEST_UNSPECIFIED_DURATION = 4801;
    • BREAK_REQUEST_UNSPECIFIED_EARLIEST_START_TIME = 4802;
    • BREAK_REQUEST_UNSPECIFIED_LATEST_START_TIME = 4803;
    • BREAK_REQUEST_DURATION_NEGATIVE_OR_NAN = 4804; = 4804;
    • BREAK_REQUEST_LATEST_START_TIME_BEFORE_EARLIEST_START_TIME = 4805;
    • BREAK_REQUEST_EARLIEST_START_TIME_BEFORE_GLOBAL_START_TIME = 4806;
    • BREAK_REQUEST_LATEST_END_TIME_FOLLOWING_GLOBAL_END_TIME = 4807;
    • BREAK_REQUEST_NON_SCHEDULABLE = 4808;
    • BREAK_VAT_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809;
    • BREAK_VAT_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810;
    • BREAK_VAT_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811;
    • BREAK_VAT_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4812;
    • BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813;
    • BREAK_VAT_MISSING_MAX_INTER_BREAK_DURATION = 4814;
    • BREAK_frequency_MISSING_MIN_BREAK_DURATION = 4815;
  • LOẠI_KHẢ_T____________ tuyệt_A_N_VN_THOÁT = 50;
    • shippingMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001;
    • shippingMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002;
    • GỬI_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003;
    • GỬI__TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004;
    • GỬI__TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBITIES = 5005;
  • GỬI_TYPE_REQUIREMENT_ERROR = 52;
    • GỬI_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001;
    • shippingMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002;
    • shippingMENT_TYPE_REQUIREMENT_INVALID_REQUIREMENT_MODE = 52003;
    • GỬI_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004;
    • shippingMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005;
    • shippingMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006;
    • GỬI_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007;
    • shippingMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008;
    • shippingMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009;
    • shippingMENT_TYPE_REQUIREMENT_self_DEPENDENT_TYPE = 52010;
    • shippingMENT_TYPE_REQUIREMENT_GRAPH_HAS_CYCLES = 52011;
  • VEHICLE_OPERATOR_ERROR = 54;
    • VEHICLE_OPERATOR_EMPTY_TYPE = 5400;
    • VEHICLE_OPERATOR_MULTIPLE_START_TIME_WINDOWS = 5401;
    • VEHICLE_OPERATOR_SOFT_START_TIME_WINDOW = 5402;
    • VEHICLE_OPERATOR_MULTIPLE_END_TIME_WINDOWS = 5403;
    • VEHICLE_OPERATOR_SOFT_END_TIME_WINDOW = 5404;
  • mất 56 giây = 56 giây.
    • năng lượng (DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5.600);
    • ↗_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601;
displayName

string

Tên hiển thị của lỗi.

fields[]

object (FieldReference)

Ngữ cảnh lỗi có thể bao gồm 0, 1 (trong hầu hết trường hợp) hoặc nhiều trường. Ví dụ: Khi tham chiếu đến xe số 4 và lần đến lấy hàng đầu tiên của lô hàng số 2, bạn có thể làm như sau:

fields { name: "vehicles" index: 4}
fields { name: "shipments" index: 2 subField {name: "pickups" index: 0} }

Tuy nhiên, hãy lưu ý rằng số lượng giá trị riêng biệt của fields không được thay đổi đối với một mã lỗi nhất định.

errorMessage

string

Chuỗi ký tự mà con người đọc được, dùng để mô tả lỗi. Có mối liên kết 1:1 giữa codeerrorMessage (khi mã != "UNSPECIFIED").

TÍNH NĂNG: Không ổn định: thông báo lỗi liên quan đến một code nhất định có thể thay đổi (hy vọng giúp làm rõ vấn đề) theo thời gian. Thay vào đó, vui lòng sử dụng displayNamecode.

offendingValues

string

Có thể chứa(các) giá trị của(các) trường. Không phải lúc nào bạn cũng có thể sử dụng những tính năng này. Bạn tuyệt đối không nên dùng và chỉ sử dụng tính năng này để gỡ lỗi mô hình theo cách thủ công.

FieldReference

Chỉ định ngữ cảnh cho lỗi xác thực. FieldReference luôn tham chiếu đến một trường nhất định trong tệp này và tuân theo cùng một cấu trúc phân cấp. Ví dụ: chúng tôi có thể chỉ định phần tử số 2 của startTimeWindows của xe số 5 bằng cách sử dụng:

name: "vehicles" index: 5 subField { name: "endTimeWindows" index: 2 }

Tuy nhiên, chúng tôi sẽ bỏ qua các thực thể cấp cao nhất như OptimizeToursRequest hoặc ShipmentModel để tránh nhồi nhét thông báo.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "subField": {
    object (FieldReference)
  },

  // Union field index_or_key can be only one of the following:
  "index": integer,
  "key": string
  // End of list of possible types for union field index_or_key.
}
Trường
name

string

Tên của trường, ví dụ: "phương tiện vận chuyển".

subField

object (FieldReference)

Trường phụ lồng nhau theo quy tắc đệ quy, nếu cần.

Trường kết hợp index_or_key.

index_or_key chỉ có thể là một trong những trạng thái sau đây:

index

integer

Chỉ mục của trường nếu lặp lại.

key

string

Khoá nếu trường là bản đồ.

Chỉ số

Chỉ số tổng thể, được tổng hợp trên tất cả các tuyến đường.

Biểu diễn dưới dạng JSON
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
Trường
aggregatedRouteMetrics

object (AggregatedMetrics)

Dữ liệu được tổng hợp qua các tuyến đường. Mỗi chỉ số là tổng (hoặc tối đa, đối với lượt tải) trên tất cả các trường ShipmentRoute.metrics có cùng tên.

skippedMandatoryShipmentCount

integer

Số lượng lô hàng bắt buộc đã bỏ qua.

usedVehicleCount

integer

Số lượng xe đã sử dụng. Lưu ý: nếu tuyến đường của xe trống và Vehicle.used_if_route_is_empty là đúng, thì xe đó sẽ được coi là đã sử dụng.

earliestVehicleStartTime

string (Timestamp format)

Thời gian bắt đầu sớm nhất của một xe đã qua sử dụng, được tính bằng thời gian tối thiểu của tất cả xe đã qua sử dụng là ShipmentRoute.vehicle_start_time.

Dấu thời gian theo múi giờ "Zulu" RFC3339 (giờ UTC) với độ phân giải nano giây và lên đến 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

latestVehicleEndTime

string (Timestamp format)

Thời gian kết thúc muộn nhất của một xe đã qua sử dụng, được tính là thời gian tối đa trên tất cả xe đã qua sử dụng của ShipmentRoute.vehicle_end_time.

Dấu thời gian theo múi giờ "Zulu" RFC3339 (giờ UTC) với độ phân giải nano giây và lên đến 9 chữ số phân số. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

costs

map (key: string, value: number)

Chi phí của giải pháp, được chia nhỏ theo các trường yêu cầu liên quan đến chi phí. Các khoá này là đường dẫn proto, liên quan đến dữ liệu đầu vào OptimizeChuyếnsRequest, ví dụ: "model.shipments.pickups.cost" và các giá trị là tổng chi phí do trường chi phí tương ứng tạo ra, được tổng hợp trên toàn bộ giải pháp. Nói cách khác, chi phí["model.shipments.pickups.cost"] là tổng tất cả chi phí đến lấy hàng của giải pháp. Tất cả chi phí được xác định trong mô hình đều được báo cáo chi tiết tại đây, ngoại trừ các chi phí liên quan đến TransitionAttributes chỉ được báo cáo theo cách tổng hợp kể từ ngày 1/1/2022.

Một đối tượng chứa danh sách các cặp "key": value. Ví dụ: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

totalCost

number

Tổng chi phí của giải pháp. Tổng của tất cả các giá trị trong bản đồ chi phí.