این نوعی از متد locations.optimizeTours است که برای بهینهسازیهایی با مقادیر timeout بزرگ طراحی شده است. برای بهینهسازیهایی که بیش از چند دقیقه طول میکشند، باید نسبت به متد locations.optimizeTours ارجحیت داشته باشد.
long-running operation (LRO) که برگردانده میشود، نامی با فرمت <parent>/operations/<operation_id> خواهد داشت و میتواند برای ردیابی پیشرفت محاسبه مورد استفاده قرار گیرد. نوع فیلد metadata OptimizeToursLongRunningMetadata است. نوع فیلد response ، در صورت موفقیت، OptimizeToursResponse است.
آزمایشی: برای جزئیات بیشتر به https://developers.google.com/maps/tt/route-optimization/experimental/otlr/make-request مراجعه کنید.
درخواست HTTP
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*/locations/*}:optimizeToursLongRunning
این URL از سینتکس Transcoding در 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 | اگر درست باشد، مسافتهای سفر به جای مسافتهای نقشههای گوگل، با استفاده از مسافتهای ژئودزیک محاسبه میشوند و زمانهای سفر با استفاده از مسافتهای ژئودزیک با سرعتی که توسط |
label | برچسبی که ممکن است برای شناسایی این درخواست استفاده شود، در |
geodesicMetersPerSecond | وقتی |
maxValidationErrors | تعداد خطاهای اعتبارسنجی برگشتی را کوتاه میکند. این خطاها معمولاً به عنوان جزئیات خطای BadRequest ( https://cloud.google.com/apis/design/errors#error_details ) به یک payload خطای INVALID_ARGUMENT پیوست میشوند، مگر اینکه solvingMode=VALIDATE_ONLY باشد: به فیلد |
بدنه پاسخ
در صورت موفقیت، بدنه پاسخ شامل نمونهای از Operation است.
دامنههای مجوز
به محدوده OAuth زیر نیاز دارد:
-
https://www.googleapis.com/auth/cloud-platform
مجوزهای IAM
به مجوز IAM زیر در منبع parent نیاز دارد:
-
routeoptimization.operations.create
برای اطلاعات بیشتر، به مستندات IAM مراجعه کنید.