OptimizeToursResponse

الاستجابة بعد حل مشكلة تحسين الجولة التي تحتوي على المسارات التي تتبعها كل مركبة، والشحنات التي تم تخطيها والتكلفة الإجمالية للحل.

تمثيل JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "metrics": {
    object (Metrics)
  }
}
الحقول
routes[]

object (ShipmentRoute)

المسارات التي يتم احتسابها لكل مركبة، ويتوافق المسار i مع المركبة i في النموذج.

requestLabel

string

نسخة من OptimizeToursRequest.label، إذا تم تحديد تصنيف في الطلب

skippedShipments[]

object (SkippedShipment)

قائمة بكل الشحنات التي تم تخطّيها

validationErrors[]

object (OptimizeToursValidationError)

قائمة بجميع أخطاء التحقّق من الصحة التي تمكّنا من اكتشافها بشكلٍ مستقل. اطّلِع على شرح "أخطاء متعدّدة" لرسالة OptimizeToursValidationError.

metrics

object (Metrics)

مقاييس المدة والمسافة والاستخدام لهذا الحلّ

OptimizeToursValidationError

يصِف هذا القسم الخطأ الذي حدث عند التحقّق من صحة OptimizeToursRequest.

تمثيل JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
الحقول
code

integer

يتم تحديد خطأ التحقّق من الصحة من خلال الزوج (code, displayName) المتوفّر دائمًا.

توفّر الحقول الأخرى (أدناه) المزيد من السياق حول الخطأ.

أخطاء متعددة: عندما تكون هناك أخطاء متعددة، تحاول عملية التحقّق من الصحة عرض العديد منها. هذه عملية غير كاملة، تمامًا مثل عملية الترجمة. ستكون بعض أخطاء التحقّق "فادحة"، ما يعني أنّها توقِف عملية التحقّق بأكملها. وينطبق ذلك على أخطاء displayName="UNSPECIFIED"، من بين غيرها. وقد تؤدي بعض الأخطاء إلى تخطّي عملية التحقّق من الأخطاء الأخرى.

الثبات: يجب أن يكون code وdisplayName ثابتَين جدًا. ومع ذلك، قد تظهر الرموز والأسماء المعروضة الجديدة بمرور الوقت، ما قد يتسبب في أن ينتج عن طلب معيّن (غير صالح) زوج مختلف (code وdisplayName) لأنّ الخطأ الجديد أخفى الرمز القديم (راجِع "أخطاء متعددة").

مرجع: قائمة بجميع أزواج (الرمز، الاسم):

  • UNSPECIFIED = 0،
  • EXISTATION_ربح_خطأ = 10؛ تعذَّر إكمال عملية التحقق خلال الموعد النهائي.
  • REQUEST_OPTIONS_ERROR = 12;

    • REQUEST_OPTIONS_Connected_SOLVING_mode = 1201
    • REQUEST_OPTIONS_INVALID_MAX_VALIDATION_ERRORS = 1203;
    • REQUEST_OPTIONS_INVALID_GEODESIC_METERS_PER_SECOND = 1204;
    • REQUEST_OPTIONS_geoDESIC_METERS_PER_COUNTRY_TOO_SMALL = 1205؛
    • REQUEST_OPTIONS_MISSING_GEODESIC_METERS_PER_SECOND = 1206;
    • REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_GEODESIC_DISTANCE = 1207؛
    • REQUEST_OPTIONS_COST_MODEL_OPTIONS_AND_GEODESIC_DISTANCE = 1208;
    • REQUEST_OPTIONS_TRAVEL_MODE_INCOMPATIBLE_WITH_TRAFFIC = 1211;
    • REQUEST_OPTIONS_MULTIPLE_TRAFFIC_FLAVORS = 1212;
    • REQUEST_OPTIONS_OPTIONS_TRAFFIC_FLAVOR = 1213;
    • REQUEST_OPTIONS_TRAFFIC_enabled_WITHOUT_GLOBAL_START_TIME = 1214،
    • REQUEST_OPTIONS_TRAFFIC_enabled_WITH_PRECEDENCES = 1215،
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_mode_غير = 1216؛
    • REQUEST_OPTIONS_TRAFFIC_PREFILL_adwordspolicy_WITHOUT_TRAFFIC = 1217;
  • INJECTED_SOLUTION_ERROR = 20،
    • INJECTED_SOLUTION_MISSING_LABEL = 2000;
    • INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
    • INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002،
    • INJECTED_SOLUTION_INFEASIBLE_after_GETSITE_TRAVEL_TIMES = 2003؛
    • INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ACTUAL_TRAVEL = 2004;
    • INJECTED_SOLUTION_CONCURRENT_SOLUTION_TYPES = 2005؛
    • INJECTED_SOLUTION_MORE_THAN_ONE_PER_TYPE = 2006،
    • INJECTED_SOLUTION_REFRESH_WITHOUT_POPULATE = 2008؛
    • INJECTED_SOLUTION_CONSTRAINED_ROUTE_PORTION_INFEASIBLE = 2010;
  • SHIPMENT_MODEL_ERROR = 22;
    • SHIPMENT_MODEL_TOO_LARGE = 2200;
    • SHIPMENT_MODEL_TOO_MANY_CAPACITY_TYPES = 2201;
    • SHIPMENT_MODEL_GLOBAL_START_TIME_NEGATIVE_OR_NAN = 2202;
    • SHIPMENT_MODEL_GLOBAL_END_TIME_TOO_LARGE_OR_NAN = 2203;
    • SHIPMENT_MODEL_GLOBAL_START_TIME_AFTER_GLOBAL_END_TIME = 2204;
    • SHIPMENT_MODEL_GLOBAL_DURATION_TOO_LONG = 2205;
    • SHIPMENT_MODEL_MAX_ACTIVE_VEHICLES_NOT_POSITIVE = 2206;
    • SHIPMENT_MODEL_DURATION_MATRIX_TOO_LARGE = 2207;
  • INDEX_ERROR = 24;
  • TAG_ERROR = 26،
  • TIME_WINDOW_ERROR = 28;
    • TIME_WINDOW_INVALID_START_TIME = 2800;
    • TIME_WINDOW_ACTIVE_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_AFTER_END_TIME = 2805;
    • TIME_WINDOW_TABLE_COST_PER_hour_BEFORE_SOFT_START_TIME = 2806؛
    • ‫TIME_WINDOW_INVALID_COST_PER_HOUR_AFTER_SOFT_END_TIME = 2807;
    • TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_WITHOUT_SOFT_START_TIME = 2808؛
    • TIME_WINDOW_COST_after_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_after_SOFT_END_TIME = 2811؛
    • ‫TIME_WINDOW_OVERLAPPING_ADJACENT_OR_EARLIER_THAN_PREVIOUS = 2812;
    • TIME_WINDOW_START_TIME_ بعد_SOFT_START_TIME = 2813؛
    • TIME_WINDOW_SOFT_START_TIME_AFTER_END_TIME = 2814;
    • TIME_WINDOW_START_TIME_after_SOFT_END_TIME = 2815،
    • TIME_WINDOW_SOFT_END_TIME_after_END_TIME = 2816؛
    • TIME_WINDOW_COST_BEFORE_SOFT_START_TIME_SET_AND_MULTIPLE_WINDOWS = 2817؛
    • TIME_WINDOW_COST_AFTER_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_METERS_UNSUPPORTED = 3003;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_SOURCE_TAGS = 3004،
    • TRANSITION_ATTRIBUTES_CONFLICTING_SOURCE_TAGS_FIELDS = 3005;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006;
    • TRANSITION_ATTRIBUTES_CONFLIC بداية_TAGS_FIELDS = 3007،
    • TRANSITION_ATTRIBUTES_DELAY_DURATION_NEGATIVE_OR_NAN = 3008;
    • TRANSITION_ATTRIBUTES_refresh_DURATION_EXCEEDS_GLOBAL_DURATION = 3009،
  • AMOUNT_ERROR = 31;
    • AMOUNT_NEGATIVE_VALUE = 3100،
  • LOAD_LIMIT_ERROR = 33;
    • LOAD_LIMIT_INVALID_COST_ABOVE_SOFT_MAX = 3303;
    • LOAD_LIMIT_SOFT_MAX_WITHOUT_COST_ABOVE_SOFT_MAX = 3304;
    • LOAD_LIMIT_COST_ABOVE_SOFT_MAX_WITHOUT_SOFT_MAX = 3305؛
    • LOAD_LIMIT_NEGATIVE_SOFT_MAX = 3306;
    • LOAD_LIMIT_MIXED_DEMAND_TYPE = 3307؛
    • LOAD_LIMIT_MAX_LOAD_NEGATIVE_VALUE = 3308،
    • LOAD_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;
  • DISTANCE_LIMIT_ERROR = 36;
    • DISTANCE_LIMIT_زيت_COST_after_SOFT_MAX = 3601؛
    • DISTANCE_LIMIT_SOFT_MAX_WITHOUT_COST_after_SOFT_MAX = 3602،
    • ‫DISTANCE_LIMIT_COST_AFTER_SOFT_MAX_WITHOUT_SOFT_MAX = 3603;
    • DISTANCE_LIMIT_NEGATIVE_MAX = 3604;
    • DISTANCE_LIMIT_NEGATIVE_SOFT_MAX = 3605;
    • DISTANCE_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3606;
  • DURATION_LIMIT_ERROR = 38;
    • DURATION_LIMIT_MAX_DURATION_NEGATIVE_OR_NAN = 3800;
    • DURATION_LIMIT_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3801،
    • DURATION_LIMIT_INVALID_COST_PER_HOUR_AFTER_SOFT_MAX = 3802;
    • DURATION_LIMIT_SOFT_MAX_WITHOUT_COST_after_SOFT_MAX = 3803؛
    • DURATION_LIMIT_COST_after_SOFT_MAX_WITHOUT_SOFT_MAX = 3804؛
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_DURATION_NEGATIVE_OR_NAN = 3805;
    • DURATION_LIMIT_INVALID_COST_AFTER_QUADRATIC_SOFT_MAX = 3806;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_COST_PER_SQUARE_AREA = 3807؛
    • DURATION_LIMIT_COST_PER_SQUARE_AREA_WITHOUT_QUADRATIC_SOFT_MAX = 3808؛
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_WITHOUT_MAX = 3809؛
    • DURATION_LIMIT_SOFT_MAX_LARGER_THAN_MAX = 3810;
    • DURATION_LIMIT_QUADRATIC_SOFT_MAX_LARGER_THAN_MAX = 3811;
    • DURATION_LIMIT_DIFF_BETWEEN_MAX_AND_QUADRATIC_SOFT_MAX_TOO_LARGE = 3812;
    • DURATION_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؛
  • SHIPMENT_ERROR = 40;
    • SHIPMENT_PD_LIMIT_WITHOUT_PICKUP_AND_DELIVERY = 4014،
    • SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_NEGATIVE_OR_NAN = 4000;
    • SHIPMENT_PD_ABSOLUTE_DETOUR_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4001;
    • SHIPMENT_PD_RELATIVE_DETOUR_LIMIT_INVALID = 4015;
    • SHIPMENT_PD_DETOUR_LIMIT_AND_EXTRA_VISIT_DURATION = 4016،
    • SHIPMENT_PD_TIME_LIMIT_DURATION_NEGATIVE_OR_NAN = 4002;
    • SHIPMENT_PD_TIME_LIMIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4003؛
    • SHIPMENT_EMPTY_SHIPMENT_TYPE = 4004;
    • SHIPMENT_NO_PICKUP_NO_DELIVERY = 4005،
    • SHIPMENT_INSERT_PENALTY_COST = 4006،
    • ‫SHIPMENT_ALLOWED_VEHICLE_INDEX_OUT_OF_BOUNDS = 4007;
    • SHIPMENT_DUPLICATE_ALLOWED_VEHICLE_INDEX = 4008;
    • SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_size_WITHOUT_INDEX = 4009،
    • SHIPMENT_INCONSISTENT_COST_FOR_VEHICLE_size_WITH_INDEX = 4010،
    • SHIPMENT_INVALID_COST_FOR_VEHICLE = 4011;
    • SHIPMENT_COST_FOR_VEHICLE_INDEX_OUT_OF_BOUNDS = 4012;
    • SHIPMENT_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_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4210،
    • ‫VEHICLE_FIRST_SHIPMENT_IGNORED = 4211;
    • VEHICLE_FIRST_SHIPMENT_NOT_BOUND = 4212،
    • ‫VEHICLE_LAST_SHIPMENT_INDEX_OUT_OF_BOUNDS = 4213;
    • VEHICLE_LAST_SHIPMENT_IGNORED = 4214،
    • VEHICLE_LAST_SHIPMENT_NOT_BOUND = 4215،
    • ‫VEHICLE_IGNORED_WITH_USED_IF_ROUTE_IS_EMPTY = 4216;
    • VEHICLE_KEY_COST_PER_KILOMETER = 4217،
    • VEHICLE_INVALID_COST_PER_HOUR = 4218;
    • VEHICLE_INVALID_COST_PER_TRAVELED_HOUR = 4219;
    • VEHICLE_INVALID_FIXED_COST = 4220;
    • VEHICLE_CUSTOM_TRAVEL_DURATION_MULTIPLE = 4221،
    • VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4223;
    • VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224;
    • VEHICLE_MIN_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_القواعد_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_AFTER_GLOBAL_END_TIME = 4807;
    • BREAK_REQUEST_NON_SCHEDULABLE = 4808;
    • BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_NEGATIVE_OR_NAN = 4809،
    • BREAK_FREQUENCY_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810;
    • BREAK_FREQUENCY_MIN_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4811،
    • BREAK_FREQUENCY_MAX_INTER_BREAK_DURATION_EXCEEDS_GLOBAL_DURATION = 4812؛
    • BREAK_REQUEST_DURATION_EXCEEDS_GLOBAL_DURATION = 4813;
    • BREAK_FREQUENCY_MISSING_MAX_INTER_BREAK_DURATION = 4814،
    • BREAK_FREQUENCY_MISSING_MIN_BREAK_DURATION = 4815،
  • SHIPMENT_TYPE_INCOMPATIBILITY_ERROR = 50;
    • SHIPMENT_TYPE_INCOMPATIBILITY_EMPTY_TYPE = 5001;
    • SHIPMENT_TYPE_INCOMPATIBILITY_LESS_THAN_TWO_TYPES = 5002;
    • SHIPMENT_TYPE_INCOMPATIBILITY_DUPLICATE_TYPE = 5003;
    • SHIPMENT_TYPE_INCOMPATIBILITY_INVALID_INCOMPATIBILITY_MODE = 5004;
    • SHIPMENT_TYPE_INCOMPATIBILITY_TOO_MANY_INCOMPATIBILITIES = 5005;
  • SHIPMENT_TYPE_REQUIREMENT_ERROR = 52،
    • SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE = 52001;
    • SHIPMENT_TYPE_REQUIREMENT_NO_DEPENDENT_TYPE = 52002،
    • SHIPMENT_TYPE_REQUIREMENT_Connected_REQUIREMENT_mode = 52003،
    • SHIPMENT_TYPE_REQUIREMENT_TOO_MANY_REQUIREMENTS = 52004;
    • SHIPMENT_TYPE_REQUIREMENT_EMPTY_REQUIRED_TYPE = 52005،
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_REQUIRED_TYPE = 52006;
    • SHIPMENT_TYPE_REQUIREMENT_NO_REQUIRED_TYPE_FOUND = 52007،
    • SHIPMENT_TYPE_REQUIREMENT_EMPTY_DEPENDENT_TYPE = 52008،
    • SHIPMENT_TYPE_REQUIREMENT_DUPLICATE_DEPENDENT_TYPE = 52009;
    • SHIPMENT_TYPE_REQUIREMENT_SELF_DEPENDENT_TYPE = 52010;
    • SHIPMENT_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،
  • DURATION_SECONDS_MATRIX_ERROR = 56;
    • DURATION_SECONDS_MATRIX_DURATION_NEGATIVE_OR_NAN = 5600;
    • DURATION_SECONDS_MATRIX_DURATION_EXCEEDS_GLOBAL_DURATION = 5601
displayName

string

الاسم المعروض للخطأ

fields[]

object (FieldReference)

قد يتضمّن سياق الخطأ 0 أو 1 حقل (في معظم الأحيان) أو أكثر. على سبيل المثال، يمكن الإشارة إلى عملية الاستلام الأولى للمركبة رقم 4 والشحنة رقم 2 على النحو التالي:

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

مع ذلك، تجدر الإشارة إلى أنّ عدد القيم الفريدة للسمة fields يجب ألا يتغيّر لرمز خطأ معيّن.

errorMessage

string

سلسلة تصف الخطأ ويمكن لشخص عادي قراءتها هناك تعيين بنسبة 1:1 بين code وerrorMessage (عندما يكون الرمز != "UNSPECIFIED").

الاستقرار: غير ثابت: قد تتغير رسالة الخطأ المرتبطة بعلامة code معيّنة (نأمل أن يتم توضيحها) بمرور الوقت. يُرجى الاعتماد على displayName وcode بدلاً من ذلك.

offendingValues

string

قد تحتوي على قيم الحقول. لا تتوفّر هذه الميزة دائمًا. يجب ألا تعتمد عليها مطلقًا وأن تستخدمها فقط لتصحيح أخطاء النموذج اليدوي.

FieldReference

تُحدِّد سياقًا لخطأ التحقّق. يشير FieldReference دائمًا إلى حقل معيّن في هذا الملف ويتّبع البنية الهرمية نفسها. على سبيل المثال، قد نحدِّد العنصر رقم 2 من startTimeWindows للمركبة رقم 5 باستخدام:

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

ومع ذلك، نتجاهل الكيانات من المستوى الأعلى، مثل OptimizeToursRequest أو ShipmentModel لتجنُّب تشويش الرسالة.

تمثيل 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.
}
الحقول
name

string

اسم الحقل، على سبيل المثال: "مركبات".

subField

object (FieldReference)

حقل فرعي مُدمَج بشكل تسلسلي، إذا لزم الأمر

حقل الربط index_or_key

يمكن أن يكون index_or_key واحدًا فقط مما يلي:

index

integer

فهرس الحقل في حال التكرار.

key

string

مفتاح إذا كان الحقل خريطة.

المقاييس

المقاييس العامة، المجمّعة من كل المسارات

تمثيل JSON
{
  "aggregatedRouteMetrics": {
    object (AggregatedMetrics)
  },
  "skippedMandatoryShipmentCount": integer,
  "usedVehicleCount": integer,
  "earliestVehicleStartTime": string,
  "latestVehicleEndTime": string,
  "costs": {
    string: number,
    ...
  },
  "totalCost": number
}
الحقول
aggregatedRouteMetrics

object (AggregatedMetrics)

يتم احتساب هذه النسبة بشكل مجمع على مدار المسارات. كل مقياس هو مجموع (أو الحد الأقصى للتحميلات) لجميع حقول ShipmentRoute.metrics التي تحمل الاسم نفسه.

skippedMandatoryShipmentCount

integer

عدد الشحنات الإلزامية التي تم تخطّيها

usedVehicleCount

integer

عدد المركبات المستخدَمة ملاحظة: إذا كان مسار المركبة فارغًا وكانت السمة Vehicle.used_if_route_is_empty صحيحة، تُعتبر المركبة مستعمَلة.

earliestVehicleStartTime

string (Timestamp format)

أقرب وقت بدء لمركبة مستعمَلة، ويتم احتسابه للحد الأدنى من جميع المركبات المستعمَلة من ShipmentRoute.vehicle_start_time

طابع زمني بتنسيق RFC3339 UTC "Zulu"، بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z"

latestVehicleEndTime

string (Timestamp format)

آخر وقت انتهاء لمركبة مستعمَلة، ويتم احتسابه على أنّه الحد الأقصى لجميع المركبات المستعمَلة من ShipmentRoute.vehicle_end_time

طابع زمني بتنسيق RFC3339 UTC "Zulu"، بدقة نانوثانية وما يصل إلى تسعة أرقام كسرية. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z"

costs

map (key: string, value: number)

تكلفة الحلّ، مقسّمة حسب حقول الطلبات ذات الصلة بالتكلفة المفاتيح هي مسارات نموذجية، نسبةً إلى الإدخال OptimizeToursRequest، على سبيل المثال "model.shipments.pickups.cost"، والقيم هي التكلفة الإجمالية التي تم إنشاؤها بواسطة حقل التكلفة المقابل، ويتم تجميعها على مستوى الحلّ بأكمله. بمعنى آخر، تكون التكاليف ["model.shipments.pickups.cost"] هي مجموع كل تكاليف الاستلام بدلاً من الحلّ. يتمّ إدراج جميع التكاليف المحدّدة في النموذج بالتفصيل هنا باستثناء التكاليف المرتبطة بعناصر TransitionAttributes التي يتمّ إدراجها فقط بطريقة مجمّعة اعتبارًا من 01/2022.

عنصر يحتوي على قائمة بأزواج "key": value مثال: { "name": "wrench", "mass": "1.3kg", "count": "3" }

totalCost

number

التكلفة الإجمالية للحلّ مجموع جميع القيم في خريطة التكاليف