یک OptimizeToursRequest حاوی ShipmentModel ارسال میکند و یک OptimizeToursResponse حاوی ShipmentRoute برمیگرداند که مجموعهای از مسیرها است که باید توسط وسایل نقلیه انجام شود تا هزینه کلی به حداقل برسد.
مدل ShipmentModel عمدتاً شامل Shipmentهایی است که باید انجام شوند و Vehicleهایی که میتوانند برای حملونقل Shipmentها استفاده شوند. ShipmentRoute Shipment را به Vehicle واگذار میکند. بهطور دقیقتر، آنها مجموعهای از Visit را به هر وسیله نقلیه اختصاص میدهند، که در آن Visit با VisitRequest مطابقت دارد، که یک سوار کردن یا پیاده کردن برای Shipment است.
هدف این است که ShipmentRoute به Vehicle اختصاص داده شود تا کل هزینه به حداقل برسد، درحالیکه هزینه دارای مؤلفههای زیادی است که در ShipmentModel تعریف شده است.
درخواست HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
نشانی وب از نحو تراتبدیل gRPC استفاده میکند.
پارامترهای مسیر
| پارامترها | |
|---|---|
parent |
الزامی. پروژه یا مکان هدف را برای برقراری تماس انتخاب کنید. قالب:
مقادیر منطقهای |
متن درخواست
بدنه درخواست حاوی دادههایی با ساختار زیر است:
| نمایش JSON |
|---|
{ "timeout": string, "model": { object ( |
| فیلدها | |
|---|---|
timeout |
اگر این زمان استراحت تنظیم شده باشد، سرور قبلاز سپری شدن دوره زمان استراحت یا رسیدن به مهلت سرور برای درخواستهای همگام (هرکدام که زودتر باشد) پاسخ را برمیگرداند. برای درخواستهای ناهمگام، سرور قبلاز اتمام زمان وقفه، راهحلی (درصورت امکان) تولید خواهد کرد. |
model |
مدل ارسال برای حل کردن. |
solvingMode |
بهطور پیشفرض، حالت حل کردن |
searchMode |
حالت جستجوی استفادهشده برای حل درخواست. |
injectedFirstSolutionRoutes[] |
الگوریتم بهینهسازی را در یافتن اولین راهحل مشابه با راهحل قبلی راهنمایی کنید. وقتی اولین راهکار ساخته میشود، مدل محدود میشود. هر محمولهای که در یک مسیر انجام نشود، بهطور ضمنی در راهحل اول نادیده گرفته میشود، اما ممکن است در راهحلهای بعدی انجام شود. راهکار باید برخیاز فرضهای اعتبار پایه را برآورده کند:
اگر راهحل تزریقشده امکانپذیر نباشد، لزوماً خطای اعتبارسنجی برگردانده نمیشود و ممکن است بهجای آن خطایی مبنی بر عدم امکانپذیری برگردانده شود. |
injectedSolutionConstraint |
الگوریتم بهینهسازی را محدود کنید تا راهحل نهایی مشابه راهحل قبلی پیدا کند. برای مثال، ممکن است از این ویژگی برای ثابت کردن بخشهایی از مسیرها که قبلاً تکمیل شدهاند یا باید تکمیل شوند اما نباید تغییر کنند استفاده شود. اگر راهحل تزریقشده امکانپذیر نباشد، لزوماً خطای اعتبارسنجی برگردانده نمیشود و ممکن است بهجای آن خطایی که نشاندهنده عدم امکانپذیری است برگردانده شود. |
refreshDetailsRoutes[] |
اگر خالی نباشد، مسیرهای دادهشده بدون تغییر دادن توالی بازدیدها یا زمانهای سفر مربوطه بازآوری خواهند شد: فقط جزئیات دیگر بهروزرسانی خواهند شد. این کار مدل را حل نمیکند. از نوامبر ۲۰۲۰، این فقط چندخطیهای مسیرهای غیرخالی را پر میکند و مستلزم این است که فیلدهای این فیلد نباید همراه با
|
interpretInjectedSolutionsUsingLabels |
اگر درست باشد:
این تفسیر برای فیلدهای اگر درست باشد، برچسبهای دستههای زیر باید حداکثر یکبار در دسته خودشان نشان داده شوند:
اگر برداشتن بازدیدهای مسیر یا کل مسیرها از راهحل تزریقشده ممکن است بر محدودیتهای ضمنی تأثیر بگذارد، که میتواند منجر به تغییر در راهحل، خطاهای اعتبارسنجی، یا عدم امکان اجرا شود. توجه: تماسگیرنده باید مطمئن شود که هر |
considerRoadTraffic |
تخمین ترافیک را در محاسبه فیلدهای |
populatePolylines |
اگر درست باشد، چندخطیها در پاسخ |
populateTransitionPolylines |
اگر درست باشد، چندخطیها و توکنهای مسیر در پاسخ |
allowLargeDeadlineDespiteInterruptionRisk |
اگر این مورد تنظیم شده باشد، درخواست میتواند مهلتی (به https://grpc.io/blog/deadlines مراجعه کنید) تا ۶۰ دقیقه داشته باشد. درغیراینصورت، حداکثر مهلت فقط ۳۰ دقیقه است. توجه داشته باشید که درخواستهای طولانیمدت با خطر وقفه بسیار بزرگتر (اما همچنان کوچک) مواجه هستند. |
useGeodesicDistances |
اگر درست باشد، مسافتهای سفر بااستفاده از مسافتهای ژئودزیک بهجای مسافتهای Google Maps محاسبه میشود و زمانهای سفر بااستفاده از مسافتهای ژئودزیک با سرعت تعریفشده توسط |
label |
برچسبی که ممکن است برای شناسایی این درخواست استفاده شود، در |
geodesicMetersPerSecond |
وقتی |
maxValidationErrors |
تعداد خطاهای اعتبارسنجی برگرداندهشده را کوتاه میکند. این خطاها معمولاً بهعنوان جزئیات خطای BadRequest به بار داده خطای INVALID_ARGUMENT پیوست میشوند (https://cloud.google.com/apis/design/errors#error_details)، مگراینکه solvingMode=VALIDATE_ONLY باشد: فیلد |
بدنه پاسخ
اگر موفقیتآمیز باشد، بدنه پاسخ حاوی نمونهای از OptimizeToursResponse است.
دامنههای مجوز
به محدوده OAuth زیر نیاز دارد:
https://www.googleapis.com/auth/cloud-platform
اجازههای IAM
به اجازه IAM زیر در منبع parent نیاز دارد:
routeoptimization.locations.use
برای اطلاعات بیشتر، به اسناد IAM مراجعه کنید.