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;
  • TRUEATION_TOTAL_ERROR = 10; לא ניתן היה להשלים את האימות במהלך המועד האחרון.
  • REQUEST_OPTIONS_ERROR = 12;

    • REQUEST_OPTIONS_INVALID_SOLVING_mode = 1201;
    • REQUEST_OPTIONS_INVALID_MAX_LEGALATION_ERRORS = 1203;
    • REQUEST_OPTIONS_INVALID_YOUDESIC_METERS_PER_SECOND = 1204;
    • REQUEST_OPTIONS_geoDESIC_METERS_PER_SECOND_TOO_ לכם = 1205;
    • REQUEST_OPTIONS_MISSING_geoDESIC_METERS_PER_SECOND = 1206;
    • REQUEST_OPTIONS_POPULATE_PATHFINDER_TRIPS_AND_geoDESIC_DISTANCE = 1207;
    • REQUEST_OPTIONS_cost_MODEL_OPTIONS_AND_YOUDESIC_DISTANCE = 1208;
    • REQUEST_OPTIONS_TRAVEL_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;
  • INJECTED_SOLUTION_ERROR = 20;
    • INJECTED_SOLUTION_MISSING_LABEL = 2000;
    • INJECTED_SOLUTION_DUPLICATE_LABEL = 2001;
    • INJECTED_SOLUTION_AMBIGUOUS_INDEX = 2002;
    • INJECTED_SOLUTION_INFEASIBLE_AFTER_GETTING_TRAVEL_TIMES = 2003;
    • INJECTED_SOLUTION_TRANSITION_INCONSISTENT_WITH_ מהמכשירים = 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_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_AFTER_END_TIME = 2805;
    • TIME_WINDOW_INVALID_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_AFTER_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_ {/9}ING_SOURCE_TAGS_FIELDS = 3005;
    • TRANSITION_ATTRIBUTES_UNSPECIFIED_DESTINATION_TAGS = 3006;
    • TRANSITION_ATTRIBUTES_ {/9}ING_DESTINATION_TAGS_FIELDS = 3007;
    • TRANSITION_ATTRIBUTES_PENDING_DURATION_NEGATIVE_OR_NAN = 3008;
    • TRANSITION_ATTRIBUTES_SENDER_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_INVALID_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_PARTY_HOUR = 3807;
    • DURATION_LIMIT_cost_PER_PARTY_HOUR_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_Ext_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_INVALID_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_additional_VISIT_DURATION_NEGATIVE_OR_NAN = 4207;
    • VEHICLE_additional_VISIT_DURATION_EXCEEDS_GLOBAL_DURATION = 4208;
    • VEHICLE_additional_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_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_TRAVEL_DURATION_MULTIPLE = 4221;
    • VEHICLE_TRAVEL_DURATION_MULTIPLE_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4223;
    • VEHICLE_MATRIX_INDEX_WITH_SHIPMENT_PD_DETOUR_LIMITS = 4224;
    • VEHICLE_PARENT_DURATION_CPCER_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_MANAGE_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_PROGRESS_MIN_BREAK_DURATION_NEGATIVE_OR_NAN = 4810;
    • BREAK_PROGRESS_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_INVALID_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 הוא True, הרכב נחשב משומש.

earliestVehicleStartTime

string (Timestamp format)

שעת ההתחלה המוקדמת ביותר של רכב משומש, מחושבת כמהירות המינימלית לכל כלי הרכב המשומשים ב-ShipmentRoute.vehicle_start_time.

חותמת זמן בפורמט "זולו" RFC3339 UTC, עם רזולוציה של ננו-שנייה ועד תשע ספרות עשרוניות. דוגמאות: "2014-10-02T15:01:23Z" ו-"2014-10-02T15:01:23.045123456Z".

latestVehicleEndTime

string (Timestamp format)

שעת הסיום העדכנית ביותר של רכב משומש, מחושבת כשעת הסיום המקסימלית בכל כלי הרכב המשומשים של ShipmentRoute.vehicle_end_time.

חותמת זמן בפורמט "זולו" RFC3339 UTC, עם רזולוציה של ננו-שנייה ועד תשע ספרות עשרוניות. דוגמאות: "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"] הן הסכום של כל עלויות האיסוף ביחס לפתרון. כל העלויות שמוגדרות במודל מדווחות כאן בפירוט, חוץ מהעלויות שקשורות למאפייני מעבר, שמדווחות רק באופן מצטבר החל מ-1 בינואר 2022.

אובייקט שמכיל רשימה של "key": value זוגות. לדוגמה: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

totalCost

number

העלות הכוללת של הפתרון. סכום כל הערכים במפת העלויות.