- نمایندگی JSON
- حمل و نقل
- VisitRequest
- LatLng
- نقطه راه
- مکان
- پنجره زمانی
- وسیله نقلیه
- حالت سفر
- RouteModifiers
- سیاست تخلیه
- LoadLimit
- فاصله
- محدودیت مدت
- محدودیت فاصله
- BreakRule
- Break Request
- محدودیت فرکانس
- Duration DistanceMatrix
- ردیف
- TransitionAttributes
- ناسازگاری نوع حمل و نقل
- حالت ناسازگاری
- نیاز نوع ارسال
- RequirementMode
- قانون تقدم
یک مدل حمل و نقل شامل مجموعهای از محمولهها است که باید توسط مجموعهای از وسایل نقلیه انجام شود، در حالی که هزینه کلی را به حداقل میرساند که مجموع موارد زیر است:
- هزینه مسیریابی وسایل نقلیه (مجموع هزینه در کل زمان، هزینه در هر زمان سفر و هزینه ثابت برای همه وسایل نقلیه).
- جریمه های حمل و نقل انجام نشده
- هزینه مدت زمان جهانی محموله ها
نمایندگی JSON |
---|
{ "shipments": [ { object ( |
فیلدها | |
---|---|
shipments[] | مجموعه ای از محموله هایی که باید در مدل انجام شود. |
vehicles[] | مجموعه ای از وسایل نقلیه که می توان از آنها برای انجام بازدید استفاده کرد. |
global Start Time | زمان شروع و پایان جهانی مدل: هیچ زمان خارج از این محدوده را نمی توان معتبر در نظر گرفت. بازه زمانی مدل باید کمتر از یک سال باشد، یعنی هنگام استفاده از فیلدهای از RFC 3339 استفاده می کند، که در آن خروجی تولید شده همیشه با Z نرمال می شود و از 0، 3، 6 یا 9 رقم کسری استفاده می کند. افست های غیر از "Z" نیز پذیرفته می شود. مثالها: |
global End Time | اگر تنظیم نشود، 00:00:00 UTC، 1 ژانویه 1971 (یعنی ثانیه: 31536000، نانو: 0) به عنوان پیش فرض استفاده می شود. از RFC 3339 استفاده می کند، که در آن خروجی تولید شده همیشه با Z نرمال می شود و از 0، 3، 6 یا 9 رقم کسری استفاده می کند. افست های غیر از "Z" نیز پذیرفته می شود. مثالها: |
global Duration Cost Per Hour | "مدت زمان جهانی" طرح کلی، تفاوت بین اولین زمان شروع موثر و آخرین زمان پایان موثر همه وسایل نقلیه است. به عنوان مثال، کاربران می توانند برای هر ساعت هزینه ای را به آن مقدار اختصاص دهند تا تلاش کنند و برای اولین کار تکمیل کنند. این هزینه باید برابر با |
duration Distance Matrices[] | ماتریس های مدت و فاصله مورد استفاده در مدل را مشخص می کند. اگر این فیلد خالی باشد، بسته به مقدار فیلد نمونه های استفاده:
|
duration Distance Matrix Src Tags[] | برچسب هایی که منابع ماتریس های مدت و فاصله را تعریف می کنند. برچسب ها با |
duration Distance Matrix Dst Tags[] | برچسب هایی که مقصد ماتریس های مدت و فاصله را مشخص می کنند. برچسب ها با |
transition Attributes[] | ویژگی های انتقال به مدل اضافه شده است. |
shipment Type Incompatibilities[] | مجموعهای از shipment_types ناسازگار (به |
shipment Type Requirements[] | مجموعهای از الزامات |
precedence Rules[] | مجموعه ای از قوانین تقدم که باید در مدل اجرا شود. مهم : استفاده از قوانین تقدم، اندازه مسئله را که می توان بهینه کرد، محدود می کند. درخواستهایی که از قوانین تقدم استفاده میکنند که شامل بسیاری از محمولهها میشود ممکن است رد شود. |
max Active Vehicles | حداکثر تعداد وسایل نقلیه فعال را محدود می کند. یک وسیله نقلیه در صورتی فعال است که مسیر آن حداقل یک بار را انجام دهد. در مواردی که تعداد رانندگان کمتر از وسایل نقلیه وجود دارد و ناوگان وسایل نقلیه ناهمگن است، می توان از این برای محدود کردن تعداد مسیرها استفاده کرد. سپس بهینه سازی بهترین زیرمجموعه وسایل نقلیه را برای استفاده انتخاب می کند. باید به شدت مثبت باشد. |
حمل و نقل
حمل و نقل یک کالا، از یکی از وانت های آن تا یکی از تحویل های آن. برای اینکه حمل و نقل انجام شده در نظر گرفته شود، یک وسیله نقلیه منحصربهفرد باید از یکی از مکانهای وانت خود بازدید کند (و ظرفیت یدکی خود را بر این اساس کاهش دهد)، سپس بعداً از یکی از مکانهای تحویل آن بازدید کند (و بنابراین ظرفیتهای یدکی خود را مجدداً افزایش دهد).
نمایندگی JSON |
---|
{ "displayName": string, "pickups": [ { object ( |
فیلدها | |
---|---|
display Name | نام نمایشی تعریف شده توسط کاربر برای محموله. می تواند حداکثر 63 کاراکتر باشد و ممکن است از نویسه های UTF-8 استفاده کند. |
pickups[] | مجموعه ای از جایگزین های پیکاپ مرتبط با محموله. اگر مشخص نشده باشد، وسیله نقلیه فقط باید از مکان مربوط به تحویل بازدید کند. |
deliveries[] | مجموعه ای از جایگزین های تحویل مرتبط با حمل و نقل. اگر مشخص نشده باشد، وسیله نقلیه فقط باید از مکان مربوط به پیکاپ بازدید کند. |
load Demands | نیازهای بار حمل و نقل (به عنوان مثال وزن، حجم، تعداد پالت ها و غیره). کلیدهای نقشه باید شناسههایی باشند که نوع بار مربوطه را توصیف میکنند و در حالت ایدهآل، واحدها را نیز شامل میشوند. به عنوان مثال: "weight_kg"، "volume_gallons"، "pallet_count"، و غیره. اگر کلید داده شده در نقشه ظاهر نشود، بار مربوطه به عنوان null در نظر گرفته می شود. |
allowed Vehicle Indices[] | مجموعه وسایل نقلیه ای که ممکن است این حمل و نقل را انجام دهند. اگر خالی باشد، همه وسایل نقلیه می توانند آن را انجام دهند. وسایل نقلیه با شاخص آنها در لیست |
costs Per Vehicle[] | هزینه ای را که هنگام تحویل این محموله توسط هر وسیله نقلیه متحمل می شود را مشخص می کند. اگر مشخص شده باشد، باید یکی از این موارد را داشته باشد:
این هزینه ها باید در واحد |
costs Per Vehicle Indices[] | شاخص های وسایل نقلیه که |
pickup To Delivery Absolute Detour Limit | حداکثر زمان انحراف مطلق را در مقایسه با کوتاه ترین مسیر از تحویل گرفتن تا تحویل مشخص می کند. اگر مشخص شده باشد، باید غیرمنفی باشد و محموله باید حداقل شامل یک تحویل و یک تحویل باشد. برای مثال، اجازه دهید t کوتاهترین زمان برای رفتن مستقیم از جایگزین انتخابشده به جایگزین تحویل انتخابشده باشد. سپس تنظیم
اگر هر دو محدودیت نسبی و مطلق در یک محموله مشخص شده باشند، از حد محدودتر برای هر جفت تحویل/تحویل ممکن استفاده می شود. از سال ۲۰۱۷/۲۰۱۰، انحرافها فقط زمانی پشتیبانی میشوند که مدت زمان سفر به وسایل نقلیه بستگی نداشته باشد. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
pickup To Delivery Time Limit | حداکثر مدت زمان از شروع تحویل تا شروع تحویل یک محموله را مشخص می کند. اگر مشخص شده باشد، باید غیرمنفی باشد و محموله باید حداقل شامل یک تحویل و یک تحویل باشد. این بستگی به این ندارد که کدام گزینه برای تحویل و تحویل انتخاب شده است و نه به سرعت خودرو. این را می توان در کنار حداکثر محدودیت های انحرافی مشخص کرد: راه حل به هر دو مشخصات احترام می گذارد. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
shipment Type | رشته غیر خالی که یک "نوع" را برای این محموله مشخص می کند. از این ویژگی می توان برای تعریف ناسازگاری ها یا الزامات بین با |
label | یک برچسب برای این محموله مشخص می کند. این برچسب در پاسخ در |
ignore | اگر درست است، از این ارسال صرف نظر کنید، اما نادیده گرفتن یک محموله منجر به خطای اعتبار سنجی زمانی می شود که در مدل هر گونه نادیده گرفتن محموله ای که در |
penalty Cost | در صورت عدم تکمیل ارسال، این جریمه به هزینه کلی مسیرها اضافه می شود. در صورت بازدید از یکی از گزینه های تحویل و تحویل، یک محموله تکمیل شده تلقی می شود. هزینه ممکن است در همان واحد مورد استفاده برای سایر زمینه های مربوط به هزینه در مدل بیان شود و باید مثبت باشد. مهم : اگر این جریمه مشخص نشده باشد، بی نهایت در نظر گرفته می شود، یعنی حمل و نقل باید تکمیل شود. |
pickup To Delivery Relative Detour Limit | حداکثر زمان انحراف نسبی را در مقایسه با کوتاه ترین مسیر از تحویل گرفتن تا تحویل مشخص می کند. اگر مشخص شده باشد، باید غیرمنفی باشد و محموله باید حداقل شامل یک تحویل و یک تحویل باشد. برای مثال، اجازه دهید t کوتاهترین زمان برای رفتن مستقیم از جایگزین انتخابشده به جایگزین تحویل انتخابشده باشد. سپس تنظیم
اگر هر دو محدودیت نسبی و مطلق در یک محموله مشخص شده باشند، از حد محدودتر برای هر جفت تحویل/تحویل ممکن استفاده می شود. از سال ۲۰۱۷/۲۰۱۰، انحرافها فقط زمانی پشتیبانی میشوند که مدت زمان سفر به وسایل نقلیه بستگی نداشته باشد. |
VisitRequest
درخواست بازدید که می تواند توسط وسیله نقلیه انجام شود: دارای موقعیت جغرافیایی (یا دو مورد، در زیر)، زمان باز و بسته شدن که با پنجره های زمانی نشان داده شده است، و مدت زمان سرویس (زمان صرف شده توسط وسیله نقلیه پس از رسیدن به تحویل یا تحویل کالا).
نمایندگی JSON |
---|
{ "arrivalLocation": { object ( |
فیلدها | |
---|---|
arrival Location | مکان جغرافیایی که وسیله نقلیه هنگام انجام این |
arrival Waypoint | نقطه ای که وسیله نقلیه هنگام انجام این |
departure Location | موقعیت جغرافیایی که وسیله نقلیه پس از تکمیل این |
departure Waypoint | نقطه ای که وسیله نقلیه پس از تکمیل این |
tags[] | برچسب های پیوست شده به درخواست بازدید را مشخص می کند. رشته های خالی یا تکراری مجاز نیستند. |
time Windows[] | پنجره های زمانی که زمان ورود را در یک بازدید محدود می کند. توجه داشته باشید که یک وسیله نقلیه ممکن است خارج از پنجره زمان رسیدن حرکت کند، یعنی زمان ورود + مدت زمان لازم نیست در یک پنجره زمانی باشد. اگر وسیله نقلیه قبل از عدم وجود پنجره های زمانی باید از هم گسسته باشند، یعنی هیچ پنجره زمانی نباید با دیگری همپوشانی داشته باشد یا در مجاورت آن قرار گیرد و باید به ترتیب افزایشی باشند. |
duration | مدت زمان بازدید، یعنی زمانی که وسیله نقلیه بین ورود و خروج سپری کرده است (به زمان انتظار احتمالی اضافه می شود؛ مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
cost | هزینه سرویس این درخواست بازدید در مسیر وسیله نقلیه. این می تواند برای پرداخت هزینه های مختلف برای هر بار تحویل یا تحویل یک محموله استفاده شود. این هزینه باید همان واحد |
load Demands | بارگیری تقاضاهای این درخواست بازدید. این درست مانند فیلد |
visit Types[] | انواع بازدید را مشخص می کند. این ممکن است برای اختصاص زمان اضافی مورد نیاز برای یک وسیله نقلیه برای تکمیل این بازدید استفاده شود (به یک نوع فقط یک بار می تواند ظاهر شود. |
label | یک برچسب برای این |
LatLng
شیئی که نشان دهنده یک جفت طول و عرض جغرافیایی است. این به صورت یک جفت دوتایی برای نشان دادن درجه عرض جغرافیایی و درجه طول جغرافیایی بیان می شود. مگر اینکه طور دیگری مشخص شده باشد، این شی باید با استاندارد WGS84 مطابقت داشته باشد. مقادیر باید در محدوده نرمال شده باشند.
نمایندگی JSON |
---|
{ "latitude": number, "longitude": number } |
فیلدها | |
---|---|
latitude | عرض جغرافیایی بر حسب درجه باید در محدوده [-90.0، +90.0] باشد. |
longitude | طول جغرافیایی بر حسب درجه باید در محدوده [-180.0، +180.0] باشد. |
نقطه راه
یک نقطه بین راه را در بر می گیرد. نقاط راه، مکان ورود و خروج VisitRequests، و مکان شروع و پایان وسایل نقلیه را مشخص می کنند.
نمایندگی JSON |
---|
{ "sideOfRoad": boolean, // Union field |
فیلدها | |
---|---|
side Of Road | اختیاری. نشان می دهد که مکان این ایستگاه بین راهی برای توقف خودرو در سمت خاصی از جاده ترجیح داده می شود. هنگامی که این مقدار را تنظیم می کنید، مسیر از محل عبور می کند تا وسیله نقلیه بتواند در کنار جاده ای که مکان از مرکز جاده به سمت آن سوگیری دارد، توقف کند. این گزینه برای حالت سفر "WALKING" کار نمی کند. |
location_type فیلد اتحادیه روش های مختلف برای نشان دادن یک مکان location_type تنها می تواند یکی از موارد زیر باشد: | |
location | نقطه ای که با استفاده از مختصات جغرافیایی، از جمله عنوان اختیاری مشخص شده است. |
place Id | شناسه مکان POI مرتبط با ایستگاه بین راه. هنگام استفاده از شناسه مکان برای تعیین مکان ورود یا خروج VisitRequest، از شناسه مکانی استفاده کنید که به اندازه کافی مشخص باشد تا مکان LatLng را برای پیمایش به مکان تعیین کند. به عنوان مثال، شناسه مکانی که نشان دهنده یک ساختمان است مناسب است، اما شناسه مکانی که نشان دهنده یک جاده است، توصیه نمی شود. |
مکان
یک مکان (نقطه جغرافیایی و عنوان اختیاری) را در بر می گیرد.
نمایندگی JSON |
---|
{
"latLng": {
object ( |
فیلدها | |
---|---|
lat Lng | مختصات جغرافیایی نقطه راه. |
heading | عنوان قطب نما با جهت جریان ترافیک مرتبط است. این مقدار برای تعیین سمت جاده مورد استفاده برای حمل و نقل استفاده می شود. مقادیر سرفصل می تواند از 0 تا 360 باشد، جایی که 0 یک عنوان شمال را مشخص می کند، 90 عنوان یک عنوان شرق و غیره را مشخص می کند. |
پنجره زمانی
پنجره های زمانی زمان یک رویداد را محدود می کند، مانند زمان رسیدن به یک بازدید، یا زمان شروع و پایان یک وسیله نقلیه.
محدودیتهای پنجره زمان سخت، startTime
و endTime
، اولین و آخرین زمان رویداد را اعمال میکنند، به طوری که startTime <= event_time <= endTime
. کران پایین پنجره زمانی نرم، softStartTime
، ترجیح می دهد که رویداد در softStartTime
یا بعد از آن اتفاق بیفتد و هزینه ای متناسب با مدت زمان قبل از softStartTime رخ می دهد. کران بالای پنجره زمانی نرم، softEndTime
، ترجیح می دهد که رویداد در یا قبل از softEndTime
اتفاق بیفتد، با متحمل شدن هزینه ای متناسب با مدت زمانی که رویداد softEndTime
رخ می دهد. startTime
، endTime
، softStartTime
و softEndTime
باید در محدوده زمانی جهانی باشند (به ShipmentModel.global_start_time
و ShipmentModel.global_end_time
مراجعه کنید) و باید رعایت کنند:
0 <= `startTime` <= `endTime` and
0 <= `startTime` <= `softStartTime` and
0 <= `softEndTime` <= `endTime`.
نمایندگی JSON |
---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
فیلدها | |
---|---|
start Time | زمان شروع پنجره زمان سخت. اگر مشخص نباشد روی از RFC 3339 استفاده می کند، که در آن خروجی تولید شده همیشه با Z نرمال می شود و از 0، 3، 6 یا 9 رقم کسری استفاده می کند. افست های غیر از "Z" نیز پذیرفته می شود. مثالها: |
end Time | زمان پایان پنجره زمان سخت. اگر مشخص نشده باشد، روی از RFC 3339 استفاده می کند، که در آن خروجی تولید شده همیشه با Z نرمال می شود و از 0، 3، 6 یا 9 رقم کسری استفاده می کند. افست های غیر از "Z" نیز پذیرفته می شود. مثالها: |
soft Start Time | زمان شروع نرم پنجره زمان. از RFC 3339 استفاده می کند، که در آن خروجی تولید شده همیشه با Z نرمال می شود و از 0، 3، 6 یا 9 رقم کسری استفاده می کند. افست های غیر از "Z" نیز پذیرفته می شود. مثالها: |
soft End Time | زمان پایان نرم پنجره زمانی. از RFC 3339 استفاده می کند، که در آن خروجی تولید شده همیشه با Z نرمال می شود و از 0، 3، 6 یا 9 رقم کسری استفاده می کند. افست های غیر از "Z" نیز پذیرفته می شود. مثالها: |
cost Per Hour Before Soft Start Time | اگر رویداد قبل از softStartTime رخ دهد، یک هزینه در ساعت به سایر هزینههای مدل اضافه میشود، که به صورت زیر محاسبه میشود:
این هزینه باید مثبت باشد و فقط در صورتی می توان فیلد را تنظیم کرد که softStartTime تنظیم شده باشد. |
cost Per Hour After Soft End Time | اگر رویداد پس از
این هزینه باید مثبت باشد و فقط در صورتی می توان فیلد را تنظیم کرد که |
وسیله نقلیه
یک وسیله نقلیه را در یک مشکل حمل و نقل مدل می کند. حل مشکل حمل و نقل، مسیری را برای این وسیله نقلیه ایجاد می کند که از startLocation
شروع می شود و به endLocation
ختم می شود. یک مسیر دنباله ای از بازدیدها است (به ShipmentRoute
مراجعه کنید).
نمایندگی JSON |
---|
{ "displayName": string, "travelMode": enum ( |
فیلدها | |
---|---|
display Name | نام نمایشی تعریف شده توسط کاربر برای وسیله نقلیه. می تواند حداکثر 63 کاراکتر باشد و ممکن است از نویسه های UTF-8 استفاده کند. |
travel Mode | حالت سفر که بر جاده های قابل استفاده وسیله نقلیه و سرعت آن تأثیر می گذارد. همچنین |
route Modifiers | مجموعه ای از شرایط برای برآوردن که بر نحوه محاسبه مسیرها برای وسیله نقلیه معین تأثیر می گذارد. |
start Location | موقعیت جغرافیایی که وسیله نقلیه قبل از تحویل گرفتن محموله از آنجا شروع می شود. اگر مشخص نشده باشد، وسیله نقلیه در اولین پیکاپ خود استارت می خورد. اگر مدل حمل و نقل دارای ماتریس های مدت و فاصله باشد، |
start Waypoint | نقطه راه نشان دهنده یک موقعیت جغرافیایی است که وسیله نقلیه قبل از تحویل گرفتن محموله از آنجا شروع می شود. اگر نه |
end Location | موقعیت جغرافیایی جایی که وسیله نقلیه پس از تکمیل آخرین |
end Waypoint | نقطه راه نشان دهنده یک مکان جغرافیایی است که خودرو پس از تکمیل آخرین |
start Tags[] | برچسب های متصل به شروع مسیر وسیله نقلیه را مشخص می کند. رشته های خالی یا تکراری مجاز نیستند. |
end Tags[] | برچسب های متصل به انتهای مسیر وسیله نقلیه را مشخص می کند. رشته های خالی یا تکراری مجاز نیستند. |
start Time Windows[] | پنجره های زمانی که در طی آن وسیله نقلیه ممکن است محل شروع خود را ترک کند. آنها باید در محدوده زمانی جهانی باشند (به فیلدهای پنجرههای زمانی متعلق به یک فیلد تکراری باید جدا باشند، یعنی هیچ پنجره زمانی نمیتواند با دیگری همپوشانی داشته باشد یا مجاور آن باشد و باید به ترتیب زمانی باشند. |
end Time Windows[] | پنجره های زمانی که در طی آن وسیله نقلیه ممکن است به مکان پایانی خود برسد. آنها باید در محدوده زمانی جهانی باشند (به فیلدهای پنجرههای زمانی متعلق به یک فیلد تکراری باید جدا باشند، یعنی هیچ پنجره زمانی نمیتواند با دیگری همپوشانی داشته باشد یا مجاور آن باشد و باید به ترتیب زمانی باشند. |
unloading Policy | سیاست تخلیه بار در خودرو اعمال شده است. |
load Limits | ظرفیت های وسیله نقلیه (به عنوان مثال وزن، حجم، # پالت). کلیدهای موجود در نقشه، شناسههای نوع بار هستند که با کلیدهای فیلد |
cost Per Hour | هزینه های خودرو: همه هزینه ها جمع می شوند و باید در همان واحد هزینه هر ساعت مسیر وسیله نقلیه این هزینه برای کل زمان طی شده توسط مسیر اعمال می شود و شامل زمان سفر، زمان انتظار و زمان بازدید می شود. استفاده از |
cost Per Traveled Hour | هزینه هر ساعت پیموده شده مسیر وسیله نقلیه. این هزینه فقط برای زمان سفر طی مسیر اعمال می شود (یعنی آنچه در |
cost Per Kilometer | هزینه هر کیلومتر مسیر وسیله نقلیه این هزینه برای مسافت گزارش شده در |
fixed Cost | اگر از این وسیله نقلیه برای حمل و نقل استفاده شود، هزینه ثابت اعمال می شود. |
used If Route Is Empty | این فیلد فقط برای وسایل نقلیه زمانی اعمال می شود که مسیر آنها به هیچ محموله ای خدمات ندهد. این نشان می دهد که آیا خودرو باید در این مورد استفاده شده در نظر گرفته شود یا خیر. اگر درست باشد، وسیله نقلیه از شروع به مکان پایانی خود میرود، حتی اگر هیچ محمولهای را ارائه ندهد، و هزینههای زمان و مسافت ناشی از سفر شروع --> پایان آن در نظر گرفته میشود. در غیر این صورت، از ابتدا تا مکان پایانی خود حرکت نمی کند و هیچ |
route Duration Limit | محدودیت برای کل مدت مسیر وسیله نقلیه اعمال می شود. در |
travel Duration Limit | محدودیت برای مدت سفر در مسیر وسیله نقلیه اعمال می شود. در |
route Distance Limit | محدودیت در کل مسافت مسیر وسیله نقلیه اعمال می شود. در |
extra Visit Duration For Visit Type | یک نقشه از رشته های visitTypes تا مدت زمان را مشخص می کند. مدت زمانی است که علاوه بر اگر درخواست بازدید چندین نوع داشته باشد، مدت زمان برای هر نوع در نقشه اضافه می شود. |
break Rule | برنامه استراحتی که باید در این وسیله نقلیه اعمال شود را شرح می دهد. در صورت خالی بودن، هیچ استراحتی برای این وسیله نقلیه در نظر گرفته نمی شود. |
label | یک برچسب برای این وسیله نقلیه مشخص می کند. این برچسب در پاسخ به عنوان |
ignore | اگر درست باشد، اگر یک محموله توسط وسیله نقلیه نادیده گرفته شده در اگر یک محموله توسط یک وسیله نقلیه نادیده گرفته شده در |
travel Duration Multiple | یک عامل ضربی را مشخص می کند که می تواند برای افزایش یا کاهش زمان سفر این وسیله نقلیه استفاده شود. به عنوان مثال، تنظیم این مورد روی 2.0 به این معنی است که این وسیله نقلیه کندتر است و زمان سفر دو برابر بیشتر از خودروهای استاندارد است. این چند برابر بر مدت زمان بازدید تأثیری ندارد. اگر هشدار: زمانهای سفر پس از اعمال این مضرب، اما قبل از انجام هر گونه عملیات عددی، به نزدیکترین ثانیه گرد میشوند، بنابراین، یک مضرب کوچک ممکن است منجر به از دست دادن دقت شود. همچنین |
حالت سفر
حالت های سفر که می تواند توسط وسایل نقلیه استفاده شود.
اینها باید زیرمجموعهای از حالتهای سفر API مسیرهای پلتفرم Google Maps باشند، ببینید: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode
توجه: مسیرهای WALKING
در حالت بتا هستند و ممکن است گاهی اوقات پیاده روهای روشن یا مسیرهای عابر پیاده را نداشته باشند. شما باید این هشدار را برای تمام مسیرهای پیاده روی که در برنامه خود نمایش می دهید به کاربر نمایش دهید.
Enums | |
---|---|
TRAVEL_MODE_UNSPECIFIED | حالت سفر نامشخص، معادل DRIVING . |
DRIVING | حالت سفر مربوط به مسیرهای رانندگی (ماشین، ...). |
WALKING | حالت سفر مربوط به مسیرهای پیاده روی. |
RouteModifiers
مجموعه ای از شرایط اختیاری را در بر می گیرد تا هنگام محاسبه مسیرهای وسیله نقلیه برآورده شود. این شبیه به RouteModifiers
در Google Maps Platform Routes Preferred API است. ببینید: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers .
نمایندگی JSON |
---|
{ "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } |
فیلدها | |
---|---|
avoid Tolls | مشخص می کند که آیا در صورت معقول بودن از جاده های عوارضی اجتناب شود یا خیر. اولویت با مسیرهایی است که دارای عوارضی نیستند. فقط برای حالت های سفر موتوری اعمال می شود. |
avoid Highways | مشخص می کند که آیا در صورت لزوم از بزرگراه ها اجتناب شود یا خیر. اولویت با مسیرهای فاقد بزرگراه خواهد بود. فقط برای حالت های سفر موتوری اعمال می شود. |
avoid Ferries | مشخص میکند که آیا در صورت لزوم از کشتیها اجتناب شود یا خیر. اولویت با مسیرهایی است که شامل سفر با کشتی نباشد. فقط برای حالت های سفر موتوری اعمال می شود. |
avoid Indoor | اختیاری. مشخص می کند که آیا از پیمایش در داخل خانه در صورت لزوم اجتناب شود. اولویت به مسیرهایی داده می شود که دارای ناوبری داخلی نیستند. فقط برای حالت سفر |
سیاست تخلیه
سیاست در مورد چگونگی تخلیه یک وسیله نقلیه فقط برای محموله هایی اعمال می شود که هم تحویل و هم تحویل دارند.
سایر محموله ها در هر نقطه از مسیر مستقل از unloadingPolicy
آزاد هستند.
Enums | |
---|---|
UNLOADING_POLICY_UNSPECIFIED | سیاست تخلیه نامشخص؛ تحویل باید فقط پس از وانت مربوطه آنها انجام شود. |
LAST_IN_FIRST_OUT | تحویل باید به ترتیب معکوس وانت انجام شود |
FIRST_IN_FIRST_OUT | تحویل باید به همان ترتیبی که پیکاپ انجام می شود |
LoadLimit
محدودیت بار را برای یک وسیله نقلیه تعریف می کند، به عنوان مثال "این کامیون فقط می تواند تا 3500 کیلوگرم را حمل کند". loadLimits
ببینید.
نمایندگی JSON |
---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
فیلدها | |
---|---|
soft Max Load | حد نرم از بار. به |
cost Per Unit Above Soft Max | اگر بار در طول مسیر این وسیله نقلیه از |
start Load Interval | فاصله بار قابل قبول وسیله نقلیه در شروع مسیر. |
end Load Interval | فاصله بار قابل قبول وسیله نقلیه در انتهای مسیر. |
max Load | حداکثر مقدار قابل قبول بار. |
فاصله
فاصله مقادیر بار قابل قبول
نمایندگی JSON |
---|
{ "min": string, "max": string } |
فیلدها | |
---|---|
min | حداقل بار قابل قبول باید ≥ 0 باشد. اگر هر دو مشخص شده اند، |
max | حداکثر بار قابل قبول باید ≥ 0 باشد. اگر مشخص نشده باشد، حداکثر بار توسط این پیام محدود نمی شود. اگر هر دو مشخص شده باشند، |
محدودیت مدت
محدودیتی که حداکثر مدت مسیر یک وسیله نقلیه را تعیین می کند. می تواند سخت یا نرم باشد.
هنگامی که یک فیلد حد نرم تعریف می شود، هم آستانه حداکثر نرم و هم هزینه مربوط به آن باید با هم تعریف شوند.
نمایندگی JSON |
---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
فیلدها | |
---|---|
max Duration | یک محدودیت سخت که مدت زمان را حداکثر حداکثر مدت زمان محدود می کند. مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
soft Max Duration | یک محدودیت نرم که حداکثر مدت زمان را اعمال نمی کند، اما در صورت نقض باعث می شود مسیر متحمل هزینه شود. این هزینه به سایر هزینه های تعریف شده در مدل، با همان واحد اضافه می شود. در صورت تعریف، مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
quadratic Soft Max Duration | یک محدودیت نرم که حداکثر مدت زمان را اعمال نمی کند، اما در صورت نقض، مسیر را متحمل هزینه ای می شود که طول مدت آن درجه دوم است. این هزینه به سایر هزینه های تعریف شده در مدل، با همان واحد اضافه می شود. اگر تعریف شده باشد، مدت زمان در ثانیه با حداکثر نه رقم کسری که با ' |
cost Per Hour After Soft Max | هزینه هر ساعت در صورت نقض آستانه
هزینه باید غیرمنفی باشد. |
cost Per Square Hour After Quadratic Soft Max | هزینه هر ساعت مربع در صورت نقض آستانه اگر مدت زمان زیر آستانه باشد، هزینه اضافی 0 است، در غیر این صورت هزینه به مدت زمان زیر بستگی دارد:
هزینه باید غیرمنفی باشد. |
محدودیت فاصله
حدی که حداکثر مسافت قابل پیمودن را تعیین می کند. می تواند سخت یا نرم باشد.
اگر یک محدودیت نرم تعریف شده باشد، هم softMaxMeters
و هم costPerKilometerAboveSoftMax
باید تعریف شده و غیرمنفی باشند.
نمایندگی JSON |
---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerBelowSoftMax": number, "costPerKilometerAboveSoftMax": number } |
فیلدها | |
---|---|
max Meters | یک حد سخت که فاصله را حداکثر حداکثر حداکثر متر محدود می کند. حد باید غیرمنفی باشد. |
soft Max Meters | یک حد نرم محدودیت حداکثر فاصله را اعمال نمی کند، اما زمانی که نقض شود منجر به هزینه ای می شود که به هزینه های دیگر تعریف شده در مدل، با همان واحد اضافه می شود. اگر softMaxMeters تعریف شده باشد باید کمتر از maxMeters باشد و باید غیرمنفی باشد. |
cost Per Kilometer Below Soft Max | هزینه هر کیلومتر متحمل شده، افزایش تا
این هزینه در |
cost Per Kilometer Above Soft Max | اگر مسافت بالاتر از حد مجاز
هزینه باید غیرمنفی باشد. |
BreakRule
قوانینی برای ایجاد وقفه زمانی برای یک وسیله نقلیه (به عنوان مثال استراحت ناهار). استراحت یک دوره زمانی پیوسته است که طی آن وسیله نقلیه در موقعیت فعلی خود بیکار می ماند و نمی تواند هیچ بازدیدی را انجام دهد. وقفه ممکن است رخ دهد:
- در طول سفر بین دو بازدید (که شامل زمان درست قبل یا بعد از بازدید می شود، اما نه در وسط یک بازدید)، در این صورت زمان حمل و نقل مربوطه بین بازدیدها را افزایش می دهد.
- یا قبل از شروع خودرو (ممکن است وسیله نقلیه در وسط یک استراحت استارت نخورد)، در این صورت بر زمان استارت خودرو تأثیری نمی گذارد.
- یا پس از پایان خودرو (همچنین، با زمان پایان خودرو).
نمایندگی JSON |
---|
{ "breakRequests": [ { object ( |
فیلدها | |
---|---|
break Requests[] | توالی استراحت. پیام |
frequency Constraints[] | ممکن است چندین |
Break Request
توالی وقفه ها (یعنی تعداد و ترتیب آنها) که برای هر وسیله نقلیه اعمال می شود باید از قبل مشخص باشد. BreakRequest
مکرر آن دنباله را به ترتیب که باید در آن اتفاق بیفتد تعریف می کند. ویندوزهای زمانی آنها ( earliestStartTime
/ latestStartTime
) ممکن است با هم همپوشانی داشته باشند ، اما باید با سفارش سازگار باشند (این بررسی شده است).
نمایندگی JSON |
---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
فیلدها | |
---|---|
earliest Start Time | مورد نیاز. محدوده پایین (فراگیر) در شروع استراحت. از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
latest Start Time | مورد نیاز. محدوده فوقانی (فراگیر) در شروع استراحت. از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
min Duration | مورد نیاز. حداقل مدت زمان استراحت. باید مثبت باشه مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
بازتولت
ممکن است فرد با اجرای حداقل فرکانس استراحت ، فرکانس و مدت زمان استراحت های مشخص شده در بالا را محدود کند ، مانند "باید حداقل 1 ساعت در هر 12 ساعت استراحت داشته باشد". با فرض اینکه این امر را می توان به عنوان "در هر پنجره زمان کشویی 12 ساعت تعبیر کرد ، باید حداقل یک ساعت حداقل یک ساعت وجود داشته باشد" ، این مثال به FrequencyConstraint
زیر ترجمه می شود:
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
زمان و مدت زمان وقفه در محلول ، علاوه بر ویندوزهای زمانی و حداقل مدت زمان که در BreakRequest
مشخص شده است ، به همه این محدودیت ها احترام می گذارد.
یک FrequencyConstraint
ممکن است در عمل در مورد استراحت های غیر متوالی اعمال شود. به عنوان مثال ، برنامه زیر به عنوان مثال "1H هر 12 ساعت" افتخار می کند:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
نمایندگی JSON |
---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
فیلدها | |
---|---|
min Break Duration | مورد نیاز. حداقل مدت زمان استراحت برای این محدودیت. غیر منفی به توضیحات مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
max Inter Break Duration | مورد نیاز. حداکثر طول مجاز از هر بازه زمانی در مسیری که حداقل تا حدی شکستگی مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
مدت زمان بندی
ماتریس مدت زمان و مسافت را از مکان های بازدید و شروع وسایل نقلیه برای بازدید و مکان های انتهای وسیله نقلیه مشخص می کند.
نمایندگی JSON |
---|
{
"rows": [
{
object ( |
فیلدها | |
---|---|
rows[] | ردیف های ماتریس مدت زمان و فاصله را مشخص می کند. این باید به عنوان عناصر زیادی به عنوان |
vehicle Start Tag | تگ تعریف می کند که در این ماتریس مدت زمان و مسافت از وسایل نقلیه استفاده می شود. اگر خالی باشد ، این در مورد همه وسایل نقلیه صدق می کند ، و فقط یک ماتریس واحد وجود دارد. هر شروع وسیله نقلیه باید دقیقاً با یک ماتریس مطابقت داشته باشد ، یعنی دقیقاً یکی از میدان همه ماتریس ها باید یک |
ردیف
یک ردیف از ماتریس مدت زمان و فاصله را مشخص می کند.
نمایندگی JSON |
---|
{ "durations": [ string ], "meters": [ number ] } |
فیلدها | |
---|---|
durations[] | مقادیر مدت زمان برای یک ردیف معین. این باید به عنوان عناصر زیادی به عنوان مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
meters[] | مقادیر فاصله برای یک ردیف معین. اگر هیچ هزینه یا محدودیتی به مسافت های مدل اشاره داشته باشد ، این می تواند خالی بماند. در غیر این صورت باید به اندازه |
انتقال
ویژگی های انتقال بین دو بازدید متوالی در یک مسیر را مشخص می کند. چندین TransitionAttributes
ممکن است برای همان انتقال اعمال شود: در این حالت ، تمام هزینه های اضافی اضافه می شوند و سخت ترین محدودیت یا حد اعمال می شود (به دنبال معناشناسی طبیعی "و" معناشناسی).
نمایندگی JSON |
---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
فیلدها | |
---|---|
src Tag | برچسب هایی که مجموعه ای از انتقال (SRC-> DST) را تعیین می کند ، این ویژگی ها به آن اعمال می شود. بازدید از منبع یا شروع وسیله نقلیه در صورت بازدید از |
excluded Src Tag | به |
dst Tag | بازدید |
excluded Dst Tag | به |
cost | هزینه ای را برای انجام این انتقال مشخص می کند. این در همان واحد مانند سایر هزینه های مدل است و نباید منفی باشد. در بالای تمام هزینه های موجود دیگر اعمال می شود. |
cost Per Kilometer | هزینه ای را برای هر کیلومتر اعمال شده برای مسافت طی شده هنگام انجام این انتقال مشخص می کند. این به هر |
distance Limit | محدودیت در مسافت طی شده هنگام انجام این انتقال را مشخص می کند. از سال 2021/06 ، فقط از محدودیت های نرم پشتیبانی می شود. |
delay | تأخیر ناشی از انجام این انتقال را مشخص می کند. این تأخیر همیشه پس از اتمام بازدید منبع و قبل از شروع بازدید از مقصد اتفاق می افتد. مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
قابلیت سازگاری حمل و نقل
بسته به نوع حمل و نقل آنها ، ناسازگاری بین محموله ها را مشخص می کند. ظاهر محموله های ناسازگار در همان مسیر بر اساس حالت ناسازگاری محدود می شود.
نمایندگی JSON |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
فیلدها | |
---|---|
types[] | لیست انواع ناسازگار. دو محموله دارای |
incompatibility Mode | حالت برای ناسازگاری اعمال می شود. |
نامطلوب
حالت هایی که چگونگی محدود شدن ظاهر محموله های ناسازگار در همان مسیر را تعریف می کنند.
Enums | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED | حالت ناسازگاری نامشخص. این مقدار هرگز نباید استفاده شود. |
NOT_PERFORMED_BY_SAME_VEHICLE | در این حالت ، دو محموله با انواع ناسازگار هرگز نمی توانند همان وسیله نقلیه را به اشتراک بگذارند. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY | برای دو محموله با انواع ناسازگار با
|
حمل و نقل
الزامات بین محموله ها را بر اساس نوع حمل و نقل آنها مشخص می کند. مشخصات مورد نیاز توسط حالت مورد نیاز تعریف شده است.
نمایندگی JSON |
---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
فیلدها | |
---|---|
required Shipment Type Alternatives[] | لیست انواع جایگزین حمل و نقل مورد نیاز توسط |
dependent Shipment Types[] | کلیه محموله ها با یک نوع در زمینه توجه: زنجیره های مورد نیاز به گونه ای که یک |
requirement Mode | حالت اعمال شده برای نیاز. |
روش
حالت هایی که ظاهر محموله های وابسته را در یک مسیر تعریف می کنند.
Enums | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED | حالت مورد نیاز نامشخص. این مقدار هرگز نباید استفاده شود. |
PERFORMED_BY_SAME_VEHICLE | در این حالت ، کلیه محموله های "وابسته" باید حداقل وسیله نقلیه حداقل یکی از محموله های "مورد نیاز" خود را به اشتراک بگذارند. |
IN_SAME_VEHICLE_AT_PICKUP_TIME | با استفاده از حالت وانت حمل و نقل "وابسته" بنابراین باید داشته باشد:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME | مانند گذشته ، به جز محموله های "وابسته" باید در زمان تحویل خود حمل و نقل "مورد نیاز" را بر روی وسیله نقلیه خود داشته باشند. |
پیشگام
یک قانون تقدم بین دو رویداد (هر رویداد وانت یا تحویل حمل و نقل است): رویداد "دوم" باید حداقل پس از شروع "اول" شروع به offsetDuration
کند.
چندین سابقه می تواند به همان وقایع (یا مرتبط) مربوط باشد ، به عنوان مثال ، "وانت B پس از تحویل" و "وانت C اتفاق می افتد که پس از وانت B" اتفاق می افتد.
علاوه بر این ، مقدمات فقط در صورت انجام هر دو محموله اعمال می شود و در غیر این صورت نادیده گرفته می شوند.
نمایندگی JSON |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
فیلدها | |
---|---|
first Is Delivery | نشان می دهد که آیا رویداد "اول" تحویل است. |
second Is Delivery | نشان می دهد که آیا رویداد "دوم" تحویل است. |
offset Duration | جبران بین رویداد "اول" و "دوم". می تواند منفی باشد. مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
first Index | شاخص حمل و نقل رویداد "اولین". این فیلد باید مشخص شود. |
second Index | شاخص حمل و نقل رویداد "دوم". این فیلد باید مشخص شود. |
- نمایندگی JSON
- حمل و نقل
- بازدید از
- LatLng
- نقطه راه
- مکان
- سیم تایم
- وسیله نقلیه
- حرکت
- رویه سازان
- تخلیه
- بارداری
- فاصله
- مدت زمان طولانی
- دور از ذهن
- چروک
- با شکوه
- بازتولت
- مدت زمان بندی
- ردیف
- انتقال
- قابلیت سازگاری حمل و نقل
- نامطلوب
- حمل و نقل
- روش
- پیشگام
یک مدل حمل و نقل شامل مجموعه ای از محموله ها است که باید توسط مجموعه ای از وسایل نقلیه انجام شود ، در حالی که هزینه کلی را به حداقل می رساند ، که این جمع است:
- هزینه مسیریابی وسایل نقلیه (مبلغ هزینه در کل زمان ، هزینه در هر زمان سفر و هزینه ثابت در تمام وسایل نقلیه).
- مجازات های حمل و نقل بدون عملکرد.
- هزینه مدت جهانی محموله ها
نمایندگی JSON |
---|
{ "shipments": [ { object ( |
فیلدها | |
---|---|
shipments[] | مجموعه محموله هایی که باید در مدل انجام شود. |
vehicles[] | مجموعه ای از وسایل نقلیه که می توانند برای انجام بازدیدها استفاده شوند. |
global Start Time | زمان شروع و پایان جهانی مدل: هیچ بار خارج از این محدوده نمی تواند معتبر تلقی شود. مدت زمان مدل باید کمتر از یک سال باشد ، یعنی هنگام استفاده از زمینه های از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
global End Time | اگر UNET ، 00:00:00 UTC ، 1 ژانویه 1971 (یعنی ثانیه: 31536000 ، نانو: 0) به عنوان پیش فرض استفاده می شود. از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
global Duration Cost Per Hour | "مدت زمان جهانی" برنامه کلی ، تفاوت بین اولین زمان شروع موثر و آخرین زمان پایان مؤثر همه وسایل نقلیه است. به عنوان مثال کاربران می توانند در هر ساعت هزینه ای را به آن مقدار اختصاص دهند تا به عنوان مثال برای اتمام کار زودرس و بهینه سازی کنند. این هزینه باید در همان واحد |
duration Distance Matrices[] | مدت زمان و ماتریس فاصله مورد استفاده در مدل را مشخص می کند. اگر این قسمت خالی باشد ، بسته به مقدار قسمت نمونه های استفاده:
|
duration Distance Matrix Src Tags[] | برچسب های تعریف منابع ماتریس مدت زمان و فاصله. برچسب ها با |
duration Distance Matrix Dst Tags[] | برچسب های تعیین کننده مقصد ماتریس مدت زمان و فاصله. برچسب ها با |
transition Attributes[] | ویژگی های انتقال به مدل اضافه شده است. |
shipment Type Incompatibilities[] | مجموعه ای از حمل و نقل ناسازگار_تایپ (به |
shipment Type Requirements[] | مجموعه ای از الزامات |
precedence Rules[] | مجموعه ای از قوانین تقدم که باید در مدل اجرا شود. نکته مهم : استفاده از قوانین فراتر از اندازه مشکل بهینه سازی شده محدود می شود. درخواست هایی با استفاده از قوانین تقدم که شامل بسیاری از محموله ها است ممکن است رد شود. |
max Active Vehicles | حداکثر تعداد وسایل نقلیه فعال را محدود می کند. اگر مسیر آن حداقل یک محموله انجام شود ، وسیله نقلیه فعال است. این می تواند برای محدود کردن تعداد مسیرها در مواردی که رانندگان کمتری نسبت به وسایل نقلیه وجود دارد استفاده شود و ناوگان وسایل نقلیه ناهمگن باشد. بهینه سازی سپس بهترین زیر مجموعه وسایل نقلیه را برای استفاده انتخاب می کند. باید کاملاً مثبت باشد. |
حمل و نقل
حمل یک مورد واحد ، از یکی از وانت های آن به یکی از تحویل های آن. برای اینکه حمل و نقل همانطور که انجام شده است در نظر گرفته شود ، یک وسیله نقلیه منحصر به فرد باید از یکی از مکان های وانت خود بازدید کند (و ظرفیت های یدکی آن را بر این اساس کاهش می دهد) ، سپس بعداً به یکی از مکان های تحویل آن مراجعه کنید (و بنابراین بر این اساس ظرفیت های یدکی خود را دوباره کاهش دهید).
نمایندگی JSON |
---|
{ "displayName": string, "pickups": [ { object ( |
فیلدها | |
---|---|
display Name | نام نمایشگر تعریف شده توسط کاربر. این می تواند تا 63 کاراکتر طول داشته باشد و ممکن است از شخصیت های UTF-8 استفاده کند. |
pickups[] | مجموعه ای از گزینه های وانت مرتبط با حمل و نقل. اگر مشخص نشده باشد ، وسیله نقلیه فقط نیاز به بازدید از مکانی دارد که مربوط به تحویل ها باشد. |
deliveries[] | مجموعه ای از گزینه های تحویل مرتبط با حمل و نقل. اگر مشخص نشده باشد ، وسیله نقلیه فقط باید از مکانی متناسب با وانت بازدید کند. |
load Demands | تقاضای بار حمل و نقل (به عنوان مثال وزن ، حجم ، تعداد پالت و غیره). کلیدهای موجود در نقشه باید شناسه هایی باشند که نوع بار مربوطه را توصیف می کنند ، از نظر ایده آل شامل واحدها نیز می شوند. به عنوان مثال: "Peight_kg" ، "Volume_gallons" ، "PALLET_COUNT" و غیره. اگر یک کلید داده شده در نقشه ظاهر نشود ، بار مربوطه به عنوان تهی در نظر گرفته می شود. |
allowed Vehicle Indices[] | مجموعه وسایل نقلیه که ممکن است این محموله را انجام دهند. اگر خالی باشد ، ممکن است همه وسایل نقلیه آن را انجام دهند. وسایل نقلیه توسط شاخص آنها در لیست |
costs Per Vehicle[] | هزینه ای را که در هنگام تحویل این حمل و نقل توسط هر وسیله نقلیه متحمل می شود ، مشخص می کند. در صورت مشخص شدن ، باید داشته باشد:
این هزینه ها باید در همان واحد |
costs Per Vehicle Indices[] | شاخص های وسایل نقلیه که در آن |
pickup To Delivery Absolute Detour Limit | حداکثر زمان انحراف مطلق را در مقایسه با کوتاهترین مسیر از وانت تا تحویل مشخص می کند. در صورت مشخص شدن ، باید غیر منفی باشد و حمل و نقل باید حداقل وانت و تحویل داشته باشد. به عنوان مثال ، اجازه دهید T کوتاهترین زمان لازم برای رفتن از جایگزین وانت انتخاب شده به طور مستقیم به گزینه تحویل انتخاب شده باشد. سپس تنظیم
اگر هر دو محدودیت نسبی و مطلق در همان محموله مشخص شوند ، برای هر جفت وانت/تحویل ممکن از محدودیت بیشتر استفاده می شود. از سال 2017/10 ، دوری ها فقط زمانی پشتیبانی می شوند که مدت زمان سفر به وسایل نقلیه وابسته نباشد. مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
pickup To Delivery Time Limit | حداکثر مدت زمان را از شروع وانت تا شروع تحویل محموله مشخص می کند. در صورت مشخص شدن ، باید غیر منفی باشد و حمل و نقل باید حداقل وانت و تحویل داشته باشد. این بستگی به این ندارد که گزینه های دیگر برای وانت و تحویل و نه به سرعت خودرو انتخاب شده اند. این را می توان در کنار حداکثر محدودیت های دوربرد مشخص کرد: راه حل به هر دو مشخصات احترام می گذارد. مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
shipment Type | رشته غیر خالی که "نوع" برای این محموله را مشخص می کند. این ویژگی را می توان برای تعریف ناسازگاری ها یا الزامات بین با |
label | یک برچسب برای این محموله مشخص می کند. این برچسب در پاسخ در |
ignore | اگر درست است ، از این محموله پرش کنید ، اما یک نادیده گرفتن حمل و نقل منجر به خطای اعتبار سنجی در صورت وجود هرگونه نادیده گرفتن محموله ای که در |
penalty Cost | اگر حمل و نقل به پایان نرسد ، این مجازات به هزینه کلی مسیرها اضافه می شود. در صورت بازدید از یکی از گزینه های وانت و تحویل آن ، یک محموله تکمیل می شود. هزینه ممکن است در همان واحد مورد استفاده برای سایر زمینه های مربوط به هزینه در مدل بیان شود و باید مثبت باشد. نکته مهم : اگر این مجازات مشخص نشده باشد ، بی نهایت تلقی می شود ، یعنی حمل و نقل باید تکمیل شود. |
pickup To Delivery Relative Detour Limit | حداکثر زمان دفع نسبی را در مقایسه با کوتاهترین مسیر از وانت تا تحویل مشخص می کند. در صورت مشخص شدن ، باید غیر منفی باشد و حمل و نقل باید حداقل وانت و تحویل داشته باشد. به عنوان مثال ، اجازه دهید T کوتاهترین زمان لازم برای رفتن از جایگزین وانت انتخاب شده به طور مستقیم به گزینه تحویل انتخاب شده باشد. سپس تنظیم
اگر هر دو محدودیت نسبی و مطلق در همان محموله مشخص شوند ، برای هر جفت وانت/تحویل ممکن از محدودیت بیشتر استفاده می شود. از سال 2017/10 ، دوری ها فقط زمانی پشتیبانی می شوند که مدت زمان سفر به وسایل نقلیه وابسته نباشد. |
بازدید از
درخواست بازدیدی که توسط یک وسیله نقلیه انجام می شود: دارای موقعیت جغرافیایی است (یا دو مورد ، در زیر مشاهده کنید) ، زمان باز و بسته شدن توسط ویندوزهای زمان و مدت زمان خدمات (زمان صرف شده توسط وسیله نقلیه پس از رسیدن به وانت یا رها کردن کالاها).
نمایندگی JSON |
---|
{ "arrivalLocation": { object ( |
فیلدها | |
---|---|
arrival Location | مکان جغرافیایی که در آن وسیله نقلیه هنگام انجام این |
arrival Waypoint | نقطه راه که در آن وسیله نقلیه هنگام انجام این |
departure Location | مکان جغرافیایی که در آن وسیله نقلیه پس از اتمام این |
departure Waypoint | ایستگاه راه که در آن وسیله نقلیه پس از اتمام این |
tags[] | برچسب های پیوست شده به درخواست بازدید را مشخص می کند. رشته های خالی یا کپی مجاز نیستند. |
time Windows[] | ویندوزهای زمانی که زمان ورود را در یک بازدید محدود می کند. توجه داشته باشید که یک وسیله نقلیه ممکن است خارج از پنجره زمان ورود حرکت کند ، یعنی زمان ورود + مدت زمان لازم نیست در یک پنجره زمانی باشد. اگر وسیله نقلیه قبل از عدم وجود ویندوزهای زمانی باید از هم جدا شوند ، یعنی هیچ پنجره زمانی نباید با دیگری همپوشانی داشته باشد یا در مجاورت دیگری باشد و باید در حال افزایش باشد. در صورت وجود یک پنجره زمانی واحد ، |
duration | مدت زمان بازدید ، یعنی زمان صرف شده توسط وسیله نقلیه بین ورود و عزیمت (برای اضافه شدن به زمان انتظار ممکن است ؛ به مدت زمان در ثانیه با حداکثر نه رقم کسری ، که با " |
cost | هزینه خدمات این درخواست بازدید در مسیر وسیله نقلیه. این می تواند برای پرداخت هزینه های مختلف برای هر وانت جایگزین یا تحویل حمل و نقل استفاده شود. این هزینه باید در همان واحد |
load Demands | تقاضای بار این درخواست بازدید. این دقیقاً مانند زمینه |
visit Types[] | انواع بازدید را مشخص می کند. این ممکن است برای تخصیص زمان اضافی مورد نیاز وسیله نقلیه برای تکمیل این بازدید استفاده شود (به یک نوع فقط یک بار ظاهر می شود. |
label | یک برچسب برای این |
LatLng
یک شیء که یک جفت عرض جغرافیایی/طول جغرافیایی را نشان می دهد. این به عنوان یک جفت دونفره برای نشان دادن طول و عرض جغرافیایی درجه و درجه ای بیان شده است. مگر اینکه در غیر این صورت مشخص شود ، این شیء باید مطابق با استاندارد WGS84 باشد. مقادیر باید در محدوده عادی باشند.
نمایندگی JSON |
---|
{ "latitude": number, "longitude": number } |
فیلدها | |
---|---|
latitude | عرض جغرافیایی در درجه. این باید در محدوده باشد [-90.0 ، +90.0]. |
longitude | طول جغرافیایی در درجه. این باید در محدوده باشد [-180.0 ، +180.0]. |
نقطه راه
یک نقطه راه را محاصره می کند. ایستگاه های راه ورود و خروج مکان های بازدید از بازدید ، و مکان های شروع و پایان وسایل نقلیه را نشان می دهد.
نمایندگی JSON |
---|
{ "sideOfRoad": boolean, // Union field |
فیلدها | |
---|---|
side Of Road | اختیاری. نشان می دهد که مکان این نقطه راه به معنای اولویت برای متوقف کردن وسیله نقلیه در یک طرف خاص از جاده است. هنگامی که این مقدار را تعیین کردید ، مسیر از محل عبور می کند تا وسیله نقلیه بتواند در کنار جاده متوقف شود که مکان از مرکز جاده مغرضانه باشد. این گزینه برای حالت سفر "پیاده روی" کار نمی کند. |
Union Field location_type . روش های مختلف برای نشان دادن یک مکان. location_type فقط می تواند یکی از موارد زیر باشد: | |
location | نکته ای که با استفاده از مختصات جغرافیایی ، از جمله عنوان اختیاری مشخص شده است. |
place Id | شناسه Poi Place در ارتباط با نقطه راه. هنگام استفاده از شناسه مکان برای مشخص کردن محل ورود یا محل عزیمت یک بازدید ، از یک شناسه مکانی استفاده کنید که به اندازه کافی خاص برای تعیین مکان Latlng برای ناوبری به مکان باشد. به عنوان مثال ، یک شناسه مکانی به نمایندگی از یک ساختمان مناسب است ، اما یک شناسه مکانی که نمایانگر یک جاده است ، دلسرد می شود. |
مکان
یک مکان (یک نقطه جغرافیایی و عنوان اختیاری) را محاصره می کند.
نمایندگی JSON |
---|
{
"latLng": {
object ( |
فیلدها | |
---|---|
lat Lng | مختصات جغرافیایی Waypoint. |
heading | عنوان قطب نما همراه با جهت جریان ترافیک. این مقدار برای مشخص کردن سمت جاده برای استفاده برای وانت و کشویی استفاده می شود. مقادیر عنوان می تواند از 0 تا 360 باشد ، جایی که 0 عنوان از شمال را مشخص می کند ، 90 عنوان یک عنوان شرق و غیره را مشخص می کند. |
سیم تایم
Windows Time زمان یک رویداد را محدود می کند ، مانند زمان ورود در یک بازدید یا زمان شروع و پایان یک وسیله نقلیه.
مرزهای پنجره زمان سخت ، startTime
و endTime
، اولین و آخرین زمان این رویداد را اجرا کنید ، به گونه ای که startTime <= event_time <= endTime
. پنجره زمانی نرم ، پایین ، softStartTime
، ترجیح می دهد این رویداد در زمان یا بعد از softStartTime
با تحمل یک هزینه متناسب با چه مدت قبل از زمان نرم افزاری این رویداد اتفاق بیفتد. پنجره زمان نرم ، زمان softEndTime
، ترجیح می دهد این رویداد در زمان نرم و یا قبل از softEndTime
با تحمل هزینه متناسب با چه مدت بعد از softEndTime
این رویداد اتفاق بیفتد. startTime
، endTime
، softStartTime
و softEndTime
باید در محدوده زمان جهانی باشد (به ShipmentModel.global_start_time
و ShipmentModel.global_end_time
مراجعه کنید) و باید احترام بگذارید:
0 <= `startTime` <= `endTime` and
0 <= `startTime` <= `softStartTime` and
0 <= `softEndTime` <= `endTime`.
نمایندگی JSON |
---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
فیلدها | |
---|---|
start Time | زمان شروع پنجره زمان سخت. اگر نامشخص باشد ، آن را به از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
end Time | زمان پایان پنجره زمان سخت. اگر نامشخص باشد ، آن را به از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
soft Start Time | زمان شروع نرم پنجره زمان. از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
soft End Time | زمان پایان نرم پنجره زمان. از RFC 3339 استفاده می کند ، جایی که خروجی تولید شده همیشه z-normalized خواهد بود و از 0 ، 3 ، 6 یا 9 رقم کسری استفاده می کند. جبران های غیر از "Z" نیز پذیرفته می شوند. مثال: |
cost Per Hour Before Soft Start Time | هزینه در هر ساعت به سایر هزینه های مدل اضافه می شود اگر این رویداد قبل از SoftStartTime رخ دهد ، محاسبه شده است:
این هزینه باید مثبت باشد و در صورت تنظیم SoftStartTime ، زمینه فقط قابل تنظیم است. |
cost Per Hour After Soft End Time | در صورت وقوع این رویداد پس از
این هزینه باید مثبت باشد و در صورت تنظیم |
وسیله نقلیه
یک وسیله نقلیه را در مشکل حمل و نقل مدل می کند. حل یک مشکل حمل و نقل مسیری را که از startLocation
شروع می شود و به پایان می رسد در endLocation
برای این وسیله نقلیه ایجاد می کند. یک مسیر دنباله ای از بازدیدها است (به ShipmentRoute
مراجعه کنید).
نمایندگی JSON |
---|
{ "displayName": string, "travelMode": enum ( |
فیلدها | |
---|---|
display Name | نام نمایشگر تعریف شده توسط کاربر. این می تواند تا 63 کاراکتر طول داشته باشد و ممکن است از شخصیت های UTF-8 استفاده کند. |
travel Mode | حالت سفر که بر جاده های قابل استفاده توسط وسیله نقلیه و سرعت آن تأثیر می گذارد. همچنین به |
route Modifiers | مجموعه ای از شرایط برای برآورده کردن تأثیرگذاری بر نحوه محاسبه مسیرها برای وسیله نقلیه داده شده. |
start Location | موقعیت جغرافیایی که در آن وسیله نقلیه قبل از انتخاب هرگونه محموله شروع می شود. اگر مشخص نشده باشد ، وسیله نقلیه در اولین وانت خود شروع می شود. اگر مدل حمل و نقل دارای ماتریس مدت و فاصله باشد ، |
start Waypoint | Waypoint نمایانگر یک مکان جغرافیایی است که در آن وسیله نقلیه قبل از انتخاب هرگونه محموله شروع می شود. اگر نه |
end Location | موقعیت جغرافیایی که پس از اتمام آخرین |
end Waypoint | Waypoint نمایانگر یک مکان جغرافیایی است که وسیله نقلیه پس از اتمام آخرین |
start Tags[] | برچسب های متصل به شروع مسیر وسیله نقلیه را مشخص می کند. رشته های خالی یا کپی مجاز نیستند. |
end Tags[] | برچسب های متصل به انتهای مسیر وسیله نقلیه را مشخص می کند. رشته های خالی یا کپی مجاز نیستند. |
start Time Windows[] | ویندوزهای زمانی که در طی آن وسیله نقلیه ممکن است محل شروع خود را ترک کند. آنها باید در محدوده زمان جهانی باشند (به زمینه های ویندوزهای زمانی متعلق به همان زمینه مکرر باید از هم جدا شوند ، یعنی هیچ پنجره زمانی نمی تواند با دیگری همپوشانی داشته باشد یا در مجاورت دیگری باشد و باید به ترتیب زمانی باشد. در صورت وجود یک پنجره زمانی واحد ، |
end Time Windows[] | ویندوزهای زمانی که در طی آن وسیله نقلیه ممکن است به محل انتها برسد. آنها باید در محدوده زمان جهانی باشند (به زمینه های ویندوزهای زمانی متعلق به همان زمینه مکرر باید از هم جدا شوند ، یعنی هیچ پنجره زمانی نمی تواند با دیگری همپوشانی داشته باشد یا در مجاورت دیگری باشد و باید به ترتیب زمانی باشد. در صورت وجود یک پنجره زمانی واحد ، |
unloading Policy | خط مشی تخلیه شده روی وسیله نقلیه. |
load Limits | ظرفیت وسیله نقلیه (وزن ، حجم ، # پالت به عنوان مثال). کلیدهای موجود در نقشه شناسه های نوع بار هستند ، مطابق با کلیدهای قسمت |
cost Per Hour | هزینه های وسیله نقلیه: تمام هزینه ها اضافه می شوند و باید در واحد هزینه در هر ساعت مسیر وسیله نقلیه. این هزینه برای کل زمان که در طول مسیر گرفته شده اعمال می شود و شامل زمان سفر ، زمان انتظار و زمان بازدید است. استفاده از |
cost Per Traveled Hour | هزینه هر ساعت سفر از مسیر وسیله نقلیه. این هزینه فقط برای زمان سفر گرفته شده توسط مسیر (یعنی گزارش شده در |
cost Per Kilometer | هزینه هر کیلومتر مسیر وسیله نقلیه. این هزینه برای مسافت گزارش |
fixed Cost | در صورت استفاده از این وسیله نقلیه برای رسیدگی به محموله ، هزینه ثابت اعمال می شود. |
used If Route Is Empty | این زمینه فقط در مورد وسایل نقلیه اعمال می شود که مسیر آنها در خدمت هیچ محموله ای نباشد. این نشان می دهد که آیا وسیله نقلیه باید در این مورد استفاده شود یا خیر. اگر درست باشد ، وسیله نقلیه از شروع خود به محل پایان خود می رود حتی اگر در خدمت هیچ محموله ای نباشد ، و هزینه های زمان و مسافت ناشی از شروع آن -> سفر پایان در نظر گرفته می شود. در غیر این صورت ، از شروع آن به محل پایان خود سفر نمی کند ، و هیچگونه |
route Duration Limit | حد اعمال شده در کل مدت زمان مسیر وسیله نقلیه. در یک |
travel Duration Limit | محدودیت اعمال شده در طول سفر مسیر وسیله نقلیه. در یک |
route Distance Limit | حد اعمال شده در فاصله کل مسیر وسیله نقلیه. در یک |
extra Visit Duration For Visit Type | نقشه را از رشته های Visittypes گرفته تا مدت زمان مشخص می کند. مدت زمان علاوه بر If a visit request has multiple types, a duration will be added for each type in the map. |
break Rule | Describes the break schedule to be enforced on this vehicle. If empty, no breaks will be scheduled for this vehicle. |
label | Specifies a label for this vehicle. This label is reported in the response as the |
ignore | If true, If a shipment is performed by an ignored vehicle in If a shipment is performed by an ignored vehicle in |
travel Duration Multiple | Specifies a multiplicative factor that can be used to increase or decrease travel times of this vehicle. For example, setting this to 2.0 means that this vehicle is slower and has travel times that are twice what they are for standard vehicles. This multiple does not affect visit durations. It does affect cost if WARNING: Travel times will be rounded to the nearest second after this multiple is applied but before performing any numerical operations, thus, a small multiple may result in a loss of precision. See also |
TravelMode
Travel modes which can be used by vehicles.
These should be a subset of the Google Maps Platform Routes API travel modes, see: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteTravelMode
Note: WALKING
routes are in beta and might sometimes be missing clear sidewalks or pedestrian paths. You must display this warning to the user for all walking routes that you display in your app.
Enums | |
---|---|
TRAVEL_MODE_UNSPECIFIED | Unspecified travel mode, equivalent to DRIVING . |
DRIVING | Travel mode corresponding to driving directions (car, ...). |
WALKING | Travel mode corresponding to walking directions. |
RouteModifiers
Encapsulates a set of optional conditions to satisfy when calculating vehicle routes. This is similar to RouteModifiers
in the Google Maps Platform Routes Preferred API; see: https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers .
نمایندگی JSON |
---|
{ "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } |
فیلدها | |
---|---|
avoid Tolls | Specifies whether to avoid toll roads where reasonable. Preference will be given to routes not containing toll roads. Applies only to motorized travel modes. |
avoid Highways | Specifies whether to avoid highways where reasonable. Preference will be given to routes not containing highways. Applies only to motorized travel modes. |
avoid Ferries | Specifies whether to avoid ferries where reasonable. Preference will be given to routes not containing travel by ferries. Applies only to motorized travel modes. |
avoid Indoor | اختیاری. Specifies whether to avoid navigating indoors where reasonable. Preference will be given to routes not containing indoor navigation. Applies only to the |
UnloadingPolicy
Policy on how a vehicle can be unloaded. Applies only to shipments having both a pickup and a delivery.
Other shipments are free to occur anywhere on the route independent of unloadingPolicy
.
Enums | |
---|---|
UNLOADING_POLICY_UNSPECIFIED | Unspecified unloading policy; deliveries must just occur after their corresponding pickups. |
LAST_IN_FIRST_OUT | Deliveries must occur in reverse order of pickups |
FIRST_IN_FIRST_OUT | Deliveries must occur in the same order as pickups |
LoadLimit
Defines a load limit applying to a vehicle, eg "this truck may only carry up to 3500 kg". See loadLimits
.
نمایندگی JSON |
---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
فیلدها | |
---|---|
soft Max Load | A soft limit of the load. See |
cost Per Unit Above Soft Max | If the load ever exceeds |
start Load Interval | The acceptable load interval of the vehicle at the start of the route. |
end Load Interval | The acceptable load interval of the vehicle at the end of the route. |
max Load | The maximum acceptable amount of load. |
فاصله
Interval of acceptable load amounts.
نمایندگی JSON |
---|
{ "min": string, "max": string } |
فیلدها | |
---|---|
min | A minimum acceptable load. Must be ≥ 0. If they're both specified, |
max | A maximum acceptable load. Must be ≥ 0. If unspecified, the maximum load is unrestricted by this message. If they're both specified, |
DurationLimit
A limit defining a maximum duration of the route of a vehicle. It can be either hard or soft.
When a soft limit field is defined, both the soft max threshold and its associated cost must be defined together.
نمایندگی JSON |
---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
فیلدها | |
---|---|
max Duration | A hard limit constraining the duration to be at most maxDuration. A duration in seconds with up to nine fractional digits, ending with ' |
soft Max Duration | A soft limit not enforcing a maximum duration limit, but when violated makes the route incur a cost. This cost adds up to other costs defined in the model, with the same unit. If defined, A duration in seconds with up to nine fractional digits, ending with ' |
quadratic Soft Max Duration | A soft limit not enforcing a maximum duration limit, but when violated makes the route incur a cost, quadratic in the duration. This cost adds up to other costs defined in the model, with the same unit. If defined, A duration in seconds with up to nine fractional digits, ending with ' |
cost Per Hour After Soft Max | Cost per hour incurred if the
The cost must be nonnegative. |
cost Per Square Hour After Quadratic Soft Max | Cost per square hour incurred if the The additional cost is 0 if the duration is under the threshold, otherwise the cost depends on the duration as follows:
The cost must be nonnegative. |
DistanceLimit
A limit defining a maximum distance which can be traveled. It can be either hard or soft.
If a soft limit is defined, both softMaxMeters
and costPerKilometerAboveSoftMax
must be defined and be nonnegative.
نمایندگی JSON |
---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerBelowSoftMax": number, "costPerKilometerAboveSoftMax": number } |
فیلدها | |
---|---|
max Meters | A hard limit constraining the distance to be at most maxMeters. The limit must be nonnegative. |
soft Max Meters | A soft limit not enforcing a maximum distance limit, but when violated results in a cost which adds up to other costs defined in the model, with the same unit. If defined softMaxMeters must be less than maxMeters and must be nonnegative. |
cost Per Kilometer Below Soft Max | Cost per kilometer incurred, increasing up to
This cost is not supported in |
cost Per Kilometer Above Soft Max | Cost per kilometer incurred if distance is above
The cost must be nonnegative. |
BreakRule
Rules to generate time breaks for a vehicle (eg lunch breaks). A break is a contiguous period of time during which the vehicle remains idle at its current position and cannot perform any visit. A break may occur:
- during the travel between two visits (which includes the time right before or right after a visit, but not in the middle of a visit), in which case it extends the corresponding transit time between the visits,
- or before the vehicle start (the vehicle may not start in the middle of a break), in which case it does not affect the vehicle start time.
- or after the vehicle end (ditto, with the vehicle end time).
نمایندگی JSON |
---|
{ "breakRequests": [ { object ( |
فیلدها | |
---|---|
break Requests[] | Sequence of breaks. See the |
frequency Constraints[] | Several |
BreakRequest
The sequence of breaks (ie their number and order) that apply to each vehicle must be known beforehand. The repeated BreakRequest
s define that sequence, in the order in which they must occur. Their time windows ( earliestStartTime
/ latestStartTime
) may overlap, but they must be compatible with the order (this is checked).
نمایندگی JSON |
---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
فیلدها | |
---|---|
earliest Start Time | مورد نیاز. Lower bound (inclusive) on the start of the break. Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
latest Start Time | مورد نیاز. Upper bound (inclusive) on the start of the break. Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
min Duration | مورد نیاز. Minimum duration of the break. باید مثبت باشه A duration in seconds with up to nine fractional digits, ending with ' |
FrequencyConstraint
One may further constrain the frequency and duration of the breaks specified above, by enforcing a minimum break frequency, such as "There must be a break of at least 1 hour every 12 hours". Assuming that this can be interpreted as "Within any sliding time window of 12h, there must be at least one break of at least one hour", that example would translate to the following FrequencyConstraint
:
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
The timing and duration of the breaks in the solution will respect all such constraints, in addition to the time windows and minimum durations already specified in the BreakRequest
.
A FrequencyConstraint
may in practice apply to non-consecutive breaks. For example, the following schedule honors the "1h every 12h" example:
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
نمایندگی JSON |
---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
فیلدها | |
---|---|
min Break Duration | مورد نیاز. Minimum break duration for this constraint. Nonnegative. See description of A duration in seconds with up to nine fractional digits, ending with ' |
max Inter Break Duration | مورد نیاز. Maximum allowed span of any interval of time in the route that does not include at least partially a break of A duration in seconds with up to nine fractional digits, ending with ' |
DurationDistanceMatrix
Specifies a duration and distance matrix from visit and vehicle start locations to visit and vehicle end locations.
نمایندگی JSON |
---|
{
"rows": [
{
object ( |
فیلدها | |
---|---|
rows[] | Specifies the rows of the duration and distance matrix. It must have as many elements as |
vehicle Start Tag | Tag defining to which vehicles this duration and distance matrix applies. If empty, this applies to all vehicles, and there can only be a single matrix. Each vehicle start must match exactly one matrix, ie exactly one of their All matrices must have a different |
ردیف
Specifies a row of the duration and distance matrix.
نمایندگی JSON |
---|
{ "durations": [ string ], "meters": [ number ] } |
فیلدها | |
---|---|
durations[] | Duration values for a given row. It must have as many elements as A duration in seconds with up to nine fractional digits, ending with ' |
meters[] | Distance values for a given row. If no costs or constraints refer to distances in the model, this can be left empty; otherwise it must have as many elements as |
TransitionAttributes
Specifies attributes of transitions between two consecutive visits on a route. Several TransitionAttributes
may apply to the same transition: in that case, all extra costs add up and the strictest constraint or limit applies (following natural "AND" semantics).
نمایندگی JSON |
---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
فیلدها | |
---|---|
src Tag | Tags defining the set of (src->dst) transitions these attributes apply to. A source visit or vehicle start matches iff its |
excluded Src Tag | See |
dst Tag | A destination visit or vehicle end matches iff its |
excluded Dst Tag | See |
cost | Specifies a cost for performing this transition. This is in the same unit as all other costs in the model and must not be negative. It is applied on top of all other existing costs. |
cost Per Kilometer | Specifies a cost per kilometer applied to the distance traveled while performing this transition. It adds up to any |
distance Limit | Specifies a limit on the distance traveled while performing this transition. As of 2021/06, only soft limits are supported. |
delay | Specifies a delay incurred when performing this transition. This delay always occurs after finishing the source visit and before starting the destination visit. A duration in seconds with up to nine fractional digits, ending with ' |
ShipmentTypeIncompatibility
Specifies incompatibilties between shipments depending on their shipmentType. The appearance of incompatible shipments on the same route is restricted based on the incompatibility mode.
نمایندگی JSON |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
فیلدها | |
---|---|
types[] | List of incompatible types. Two shipments having different |
incompatibility Mode | Mode applied to the incompatibility. |
IncompatibilityMode
Modes defining how the appearance of incompatible shipments are restricted on the same route.
Enums | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED | Unspecified incompatibility mode. This value should never be used. |
NOT_PERFORMED_BY_SAME_VEHICLE | In this mode, two shipments with incompatible types can never share the same vehicle. |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY | For two shipments with incompatible types with the
|
ShipmentTypeRequirement
Specifies requirements between shipments based on their shipmentType. The specifics of the requirement are defined by the requirement mode.
نمایندگی JSON |
---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
فیلدها | |
---|---|
required Shipment Type Alternatives[] | List of alternative shipment types required by the |
dependent Shipment Types[] | All shipments with a type in the NOTE: Chains of requirements such that a |
requirement Mode | Mode applied to the requirement. |
RequirementMode
Modes defining the appearance of dependent shipments on a route.
Enums | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED | Unspecified requirement mode. This value should never be used. |
PERFORMED_BY_SAME_VEHICLE | In this mode, all "dependent" shipments must share the same vehicle as at least one of their "required" shipments. |
IN_SAME_VEHICLE_AT_PICKUP_TIME | With the A "dependent" shipment pickup must therefore have either:
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME | Same as before, except the "dependent" shipments need to have a "required" shipment on their vehicle at the time of their delivery . |
PrecedenceRule
A precedence rule between two events (each event is the pickup or the delivery of a shipment): the "second" event has to start at least offsetDuration
after "first" has started.
Several precedences can refer to the same (or related) events, eg, "pickup of B happens after delivery of A" and "pickup of C happens after pickup of B".
Furthermore, precedences only apply when both shipments are performed and are otherwise ignored.
نمایندگی JSON |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
فیلدها | |
---|---|
first Is Delivery | Indicates if the "first" event is a delivery. |
second Is Delivery | Indicates if the "second" event is a delivery. |
offset Duration | The offset between the "first" and "second" event. می تواند منفی باشد. A duration in seconds with up to nine fractional digits, ending with ' |
first Index | Shipment index of the "first" event. این فیلد باید مشخص شود. |
second Index | Shipment index of the "second" event. این فیلد باید مشخص شود. |