OptimizeToursResponse

پاسخ پس از حل یک مسئله بهینه‌سازی تور شامل مسیرهایی که هر وسیله نقلیه طی می‌کند، محموله‌هایی که از آنها صرف نظر شده است و هزینه کلی راه‌حل.

نمایش JSON
{
  "routes": [
    {
      object (ShipmentRoute)
    }
  ],
  "requestLabel": string,
  "skippedShipments": [
    {
      object (SkippedShipment)
    }
  ],
  "validationErrors": [
    {
      object (OptimizeToursValidationError)
    }
  ],
  "processedRequest": {
    object (OptimizeToursRequest)
  },
  "metrics": {
    object (Metrics)
  }
}
فیلدها
routes[]

object ( ShipmentRoute )

مسیرهای محاسبه‌شده برای هر وسیله نقلیه؛ مسیر iام مربوط به iام وسیله نقلیه در مدل است.

requestLabel

string

کپی از OptimizeToursRequest.label ، در صورتی که برچسبی در درخواست مشخص شده باشد.

skippedShipments[]

object ( SkippedShipment )

لیست تمام محموله‌ها از قلم افتاد.

validationErrors[]

object ( OptimizeToursValidationError )

فهرست تمام خطاهای اعتبارسنجی که توانستیم به‌طور مستقل تشخیص دهیم. برای پیام OptimizeToursValidationError به توضیح «خطاهای چندگانه» مراجعه کنید. به‌جای خطاها، این شامل هشدارهایی در حالت حل مسئله solvingMode is DEFAULT_SOLVE خواهد بود.

processedRequest

object ( OptimizeToursRequest )

در برخی موارد، ما درخواست ورودی را قبل از حل آن اصلاح می‌کنیم، یعنی هزینه‌ها را اضافه می‌کنیم. اگر solvingMode == TRANSFORM_AND_RETURN_REQUEST باشد، درخواست اصلاح‌شده در اینجا بازگردانده می‌شود.

آزمایشی: برای جزئیات بیشتر به https://developers.google.com/maps/tt/route-optimization/experimental/objectives/make-request مراجعه کنید.

metrics

object ( Metrics )

معیارهای مدت زمان، مسافت و میزان استفاده برای این راهکار.

خطای اعتبارسنجی OptimizeTours

خطا یا هشداری را توصیف می‌کند که هنگام اعتبارسنجی یک OptimizeToursRequest با آن مواجه می‌شویم.

نمایش JSON
{
  "code": integer,
  "displayName": string,
  "fields": [
    {
      object (FieldReference)
    }
  ],
  "errorMessage": string,
  "offendingValues": string
}
فیلدها
code

integer

یک خطای اعتبارسنجی توسط جفت ( code ، displayName ) که همیشه وجود دارند، تعریف می‌شود.

فیلدهای بعد از این بخش، اطلاعات بیشتری در مورد خطا ارائه می‌دهند.

خطاهای چندگانه : وقتی چندین خطا وجود دارد، فرآیند اعتبارسنجی سعی می‌کند چندین مورد از آنها را در خروجی نمایش دهد. دقیقاً مانند یک کامپایلر، این یک فرآیند ناقص است. برخی از خطاهای اعتبارسنجی "مهلک" خواهند بود، به این معنی که کل فرآیند اعتبارسنجی را متوقف می‌کنند. این مورد در مورد خطاهای displayName="UNSPECIFIED" و موارد دیگر صدق می‌کند. برخی از خطاها ممکن است باعث شوند فرآیند اعتبارسنجی از خطاهای دیگر صرف نظر کند.

پایداری : code و displayName باید بسیار پایدار باشند. اما ممکن است کدها و نام‌های نمایش جدید به مرور زمان ظاهر شوند، که ممکن است باعث شود یک درخواست داده شده (نامعتبر) یک جفت ( code ، displayName ) متفاوت را نتیجه دهد زیرا خطای جدید، خطای قبلی را پنهان کرده است. برای مثال، به "خطاهای چندگانه" مراجعه کنید.

displayName

string

نام نمایش خطا.

fields[]

object ( FieldReference )

یک زمینه خطا ممکن است شامل ۰، ۱ (بیشتر اوقات) یا فیلدهای بیشتری باشد. برای مثال، اشاره به وسیله نقلیه شماره ۴ و اولین برداشت محموله شماره ۲ می‌تواند به صورت زیر انجام شود:

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

با این حال، توجه داشته باشید که تعداد fields نباید برای یک کد خطای مشخص تغییر کند.

errorMessage

string

رشته‌ای قابل خواندن توسط انسان که خطا را توصیف می‌کند. یک نگاشت ۱:۱ بین code و errorMessage وجود دارد (وقتی کد != "UNSPECIFIED" باشد).

پایداری : پایدار نیست: پیام خطای مربوط به یک code مشخص ممکن است با گذشت زمان تغییر کند (امیدوارم برای روشن شدن آن). لطفاً به جای آن به displayName و code تکیه کنید.

offendingValues

string

ممکن است شامل مقدار(های) فیلد(ها) باشد. این همیشه در دسترس نیست. شما مطلقاً نباید به آن تکیه کنید و فقط برای اشکال‌زدایی دستی مدل از آن استفاده کنید.

فیلدرفرنس

زمینه‌ای برای خطای اعتبارسنجی مشخص می‌کند. یک FieldReference همیشه به یک فیلد مشخص در این فایل اشاره می‌کند و از همان ساختار سلسله مراتبی پیروی می‌کند. برای مثال، می‌توانیم عنصر شماره ۲ از startTimeWindows وسیله نقلیه شماره ۵ را با استفاده از موارد زیر مشخص کنیم:

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 محاسبه می‌شود.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولید شده همیشه به صورت Z-normalized خواهد بود و از ارقام کسری ۰، ۳، ۶ یا ۹ استفاده می‌کند. آفست‌های غیر از "Z" نیز پذیرفته می‌شوند. مثال‌ها: "2014-10-02T15:01:23Z" ، "2014-10-02T15:01:23.045123456Z" یا "2014-10-02T15:01:23+05:30" .

latestVehicleEndTime

string ( Timestamp format)

دیرترین زمان پایان برای یک وسیله نقلیه دست دوم، که به عنوان حداکثر زمان برای همه وسایل نقلیه دست دوم ShipmentRoute.vehicle_end_time محاسبه می‌شود.

از RFC 3339 استفاده می‌کند، که در آن خروجی تولید شده همیشه به صورت Z-normalized خواهد بود و از ارقام کسری ۰، ۳، ۶ یا ۹ استفاده می‌کند. آفست‌های غیر از "Z" نیز پذیرفته می‌شوند. مثال‌ها: "2014-10-02T15:01:23Z" ، "2014-10-02T15:01:23.045123456Z" یا "2014-10-02T15:01:23+05:30" .

costs

map (key: string, value: number)

هزینه راه‌حل، تفکیک‌شده بر اساس فیلدهای درخواست مرتبط با هزینه. کلیدها مسیرهای اولیه، نسبت به ورودی OptimizeToursRequest هستند، مثلاً "model.shipments.pickups.cost"، و مقادیر، کل هزینه تولید شده توسط فیلد هزینه مربوطه هستند که در کل راه‌حل تجمیع شده‌اند. به عبارت دیگر، costs["model.shipments.pickups.cost"] مجموع تمام هزینه‌های جمع‌آوری در راه‌حل است. تمام هزینه‌های تعریف‌شده در مدل در اینجا با جزئیات گزارش شده‌اند، به استثنای هزینه‌های مربوط به TransitionAttributes که فقط از تاریخ 2022/01 به صورت تجمیع‌شده گزارش شده‌اند.

totalCost

number

هزینه کل راه‌حل. مجموع تمام مقادیر موجود در نقشه هزینه‌ها.