یک OptimizeToursRequest
حاوی ShipmentModel
ارسال می کند و OptimizeToursResponse
حاوی ShipmentRoute
را برمی گرداند، که مجموعه ای از مسیرها هستند که باید توسط وسایل نقلیه انجام شود و هزینه کلی را به حداقل می رساند.
یک مدل ShipmentModel
عمدتاً شامل Shipment
هایی است که باید انجام شوند و Vehicle
که می توانند برای حمل و نقل Shipment
ها استفاده شوند. ShipmentRoute
Shipment
s را به Vehicle
s اختصاص می دهد. به طور خاص، آنها یک سری از Visit
را به هر وسیله نقلیه اختصاص می دهند، که در آن یک Visit
مربوط به VisitRequest
است، که یک تحویل یا تحویل برای یک Shipment
است.
هدف این است که تخصیصی از ShipmentRoute
به Vehicle
ارائه شود که هزینه کل را در جایی که هزینه دارای اجزای زیادی است که در ShipmentModel
تعریف شده است، به حداقل می رساند.
درخواست HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeTours
URL از دستور GRPC Transcoding استفاده می کند.
پارامترهای مسیر
پارامترها | |
---|---|
parent | مورد نیاز. پروژه یا مکان را برای برقراری تماس هدف قرار دهید. قالب: * اگر مکانی مشخص نشده باشد، یک منطقه به طور خودکار انتخاب می شود. |
درخواست بدن
بدنه درخواست حاوی داده هایی با ساختار زیر است:
نمایندگی JSON |
---|
{ "timeout": string, "model": { object ( |
فیلدها | |
---|---|
timeout | اگر این مهلت تنظیم شود، سرور قبل از سپری شدن مدت زمان یا رسیدن به مهلت سرور برای درخواستهای همزمان، هرکدام زودتر، پاسخی را برمیگرداند. برای درخواست های ناهمزمان، سرور یک راه حل (در صورت امکان) را قبل از سپری شدن مهلت ایجاد می کند. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
model | مدل حمل و نقل برای حل. |
solvingMode | به طور پیش فرض، حالت حل |
searchMode | حالت جستجو برای حل درخواست استفاده می شود. |
injectedFirstSolutionRoutes[] | الگوریتم بهینه سازی را در یافتن راه حل اول که مشابه راه حل قبلی است، راهنمایی کنید. وقتی اولین راه حل ساخته می شود، مدل محدود می شود. هر محموله ای که در یک مسیر انجام نشده باشد به طور ضمنی در راه حل اول نادیده گرفته می شود، اما ممکن است در راه حل های متوالی انجام شود. راه حل باید برخی از مفروضات اعتبار پایه را برآورده کند:
اگر راه حل تزریق شده امکان پذیر نباشد، یک خطای اعتبار سنجی لزوما برگردانده نمی شود و ممکن است به جای آن خطای نشان دهنده غیرممکن بودن برگردانده شود. |
injectedSolutionConstraint | الگوریتم بهینه سازی را برای یافتن راه حل نهایی که مشابه راه حل قبلی است محدود کنید. به عنوان مثال، این ممکن است برای مسدود کردن بخشهایی از مسیرهایی که قبلاً تکمیل شدهاند یا باید تکمیل شوند اما نباید اصلاح شوند استفاده شود. اگر راه حل تزریق شده امکان پذیر نباشد، یک خطای اعتبار سنجی لزوما برگردانده نمی شود و ممکن است به جای آن خطای نشان دهنده غیرممکن بودن برگردانده شود. |
refreshDetailsRoutes[] | در صورت خالی نبودن، مسیرهای داده شده بدون تغییر توالی بازدیدها یا زمان سفر، به روز می شوند: فقط سایر جزئیات به روز می شوند. این مدل را حل نمی کند. از سال 2020/11، این فقط چند خطوط مسیرهای غیر خالی را پر می کند و مستلزم آن است که فیلدهای این فیلد نباید همراه با |
interpretInjectedSolutionsUsingLabels | اگر درست باشد:
این تفسیر برای فیلدهای اگر درست باشد، برچسبهای دستههای زیر باید حداکثر یک بار در دسته خود ظاهر شوند:
اگر حذف بازدیدهای مسیر یا کل مسیرها از یک راه حل تزریقی ممکن است بر محدودیت های ضمنی تأثیر بگذارد، که ممکن است منجر به تغییر در راه حل، خطاهای اعتبارسنجی یا غیرممکن شود. توجه: تماس گیرنده باید اطمینان حاصل کند که هر |
considerRoadTraffic | در محاسبه فیلدهای |
populatePolylines | اگر درست باشد، چند خطوط در پاسخ |
populateTransitionPolylines | اگر درست باشد، چند خطوط در پاسخ |
allowLargeDeadlineDespiteInterruptionRisk | اگر این تنظیم شده باشد، درخواست می تواند حداکثر 60 دقیقه مهلت داشته باشد (به https://grpc.io/blog/deadlines مراجعه کنید). در غیر این صورت حداکثر مهلت فقط 30 دقیقه است. توجه داشته باشید که درخواست های طولانی مدت خطر وقفه به طور قابل توجهی بزرگتر (اما هنوز کوچک) دارند. |
useGeodesicDistances | اگر درست باشد، مسافتهای سفر با استفاده از فواصل ژئودزیکی به جای فواصل Google Maps و زمان سفر با استفاده از فواصل ژئودزیکی با سرعتی که توسط |
label | برچسبی که ممکن است برای شناسایی این درخواست استفاده شود، در |
geodesicMetersPerSecond | وقتی |
maxValidationErrors | تعداد خطاهای اعتبارسنجی برگشتی را کوتاه می کند. این خطاها معمولاً به یک بار خطای INVALID_ARGUMENT به عنوان جزئیات خطای BadRequest ( 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 مراجعه کنید.