ساختار پایه (مدل محموله، حمل و نقل و وسیله نقلیه)

ShipmentModel has one `shipments` object with a `Shipment` message type and one `vehicles` object with a `Vehicle` message type.

هدف Route Optimization API برنامه ریزی مسیرهایی برای ناوگان وسایل نقلیه برای بازدید از مجموعه ای از مکان ها است. شی OptimizeToursRequest ویژگی های این وسایل نقلیه و مکان ها را توصیف می کند و ساختار اولیه بدنه درخواست هر نقطه پایانی است.

ساختار پایه شی OptimizeToursRequest به شرح زیر است:

  • فیلد model دارای یک پیام ShipmentModel است که حاوی دو فیلد کلیدی است:
    • یک فیلد shipments که حاوی یک یا چند پیام Shipment است.
    • فیلد یک vehicles که حاوی یک یا چند پیام Vehicle است.

این سند انواع پیام های زیر را شرح می دهد:

  • ShipmentModel : فهرستی از محموله ها، وسایل نقلیه موجود و سایر اشیاء را که روابط آنها را توصیف می کند، نگه می دارد.
  • Shipment : مکان هایی را که باید توسط یک وسیله نقلیه بازدید شود را توصیف می کند. آنها می توانند بسته های واقعی را برای تحویل گرفتن و تحویل یا مکان هایی که راننده وسیله نقلیه خدماتی را انجام می دهد را نشان دهند.
  • Vehicle : وسیله حمل و نقل بین مکان های حمل و نقل را توصیف می کند. هر وسیله نقلیه مربوط به یک وسیله نقلیه واقعی یا شخصی است که با پای پیاده در حال حرکت است.

ShipmentModel

ShipmentModel عناصر مسئله بهینه سازی مسیر را نگه می دارد. این شامل مجموعه ای از محموله ها است که ممکن است توسط مجموعه ای از وسایل نقلیه انجام شود، در حالی که محدودیت ها را در نظر گرفته و هزینه کلی را به حداقل می رساند.

جدول زیر برخی از ویژگی های مرتبط ShipmentModel را توضیح می دهد:

خواص توضیحات
shipments و vehicles اشیاء مورد نیاز که حاوی جزئیات یک یا چند محموله و وسیله نقلیه باشد.
globalStartTime و globalEndTime شروع و پایان پنجره زمانی را نشان می دهد که در آن همه وسایل نقلیه باید تمام محموله ها را تکمیل کنند. در حالی که این ویژگی‌ها مورد نیاز نیستند، توصیه می‌شود آنها را درج کنید زیرا بهینه‌ساز هنگام رعایت محدودیت‌های زمانی بهترین عملکرد را دارد.

برای لیست کامل املاک در ShipmentModel به مستندات مرجع مراجعه کنید.

نمونه ShipmentModel

در این مثال، شما یک سرویس مهدکودک سگ دارید و شروع به ایجاد درخواست خود می کنید. شما بعداً محموله‌ها و وسایل نقلیه را تعریف می‌کنید، اما می‌خواهید با تنظیم ساعات کاری و هزینه عملیات ساعتی خود شروع کنید.

برای این مثال، مقادیر ویژگی ShipmentModel در درخواست شما به شرح زیر است:

اموال ارزش توضیحات
globalStartTime 2024-02-13T00:00:00.000Z تاریخ و زمان شروع ساعت کاری.
globalEndTime 2024-02-14T06:00:00.000Z تاریخ و زمان پایان ساعت کاری.

در زیر یک نمونه کد از یک پیام ShipmentModel است که مقادیر نمونه سناریو را در خود جای داده است.

{
  "model": {
    "shipments": [
      ...
    ],
    "vehicles": [
      ...
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

Shipment

نوع پیام Shipment ، ساختار ویژگی یک محموله قابل تحویل یا خدماتی را که می توان در یک مسیر انجام داد، تعریف می کند.

A real life shipment equals one `Shipment` message, which is contained within a `shipments` object

همانطور که در نمودار نشان داده شده است:

  • پیام Shipment دارای تمام اطلاعات یک محموله یا خدمات واقعی است.
  • تمام پیام های Shipment در قسمت shipments مشخص شده است.
  • فیلد shipments حاوی یک یا چند پیام Shipment است.

یک پیام Shipment حداقل به یک شی pickups یا deliveries نیاز دارد. تعریف این اشیا به شرح زیر است:

  • pickups مکان تحویل یک محموله را مشخص می کند.
  • deliveries محل تحویل یک محموله را مشخص می کند.
  • هر دو pickups و deliveries حاوی یک نوع پیام VisitRequest هستند که مکان ها و جزئیات دیگر را مشخص می کند.

جدول زیر سناریوهای مختلف را بر اساس پیکربندی pickups و deliveries در پیام Shipment توضیح می دهد.

سناریو توضیحات
فقط pickups فرض بر این است که شما فقط محموله را جمع آوری می کنید .
فقط deliveries فرض بر این است که شما محموله را از قبل بارگیری کرده اید یا در حال ارائه خدمات هستید.
هم pickups و deliveries وسیله نقلیه تعیین شده باید ابتدا پیکاپ و سپس تحویل را تکمیل کند. فقط خودرویی که پیکاپ را انجام داده است می تواند تحویل را انجام دهد.
pickups یا deliveries چندگانه اگر یک محموله چندین احتمال را برای pickups یا deliveries فهرست کند، بهینه‌ساز یک گزینه تحویل و یک گزینه تحویل را برای استفاده انتخاب می‌کند ، بر اساس به حداقل رساندن هزینه و محدودیت‌ها.

برای لیست کامل املاک در Shipment به اسناد مرجع مراجعه کنید.

نمونه Shipment

در این مثال، شما یک سرویس مهدکودک سگ دارید که در آن سگ‌ها را از خانه‌شان می‌گیرید و به مهد کودک خود تحویل می‌دهید. می‌خواهید مکان تحویل دو سگ را تنظیم کنید و مکان تحویل آنها را برای کسب و کار خود تنظیم کنید:

  • خانه اولین سگ در برج کویت، سانفرانسیسکو است. مختصات این مکان عبارتند از: عرض جغرافیایی 37.8024 و طول جغرافیایی -122.4058.
  • خانه سگ دوم در پارک زمین بازی South Sunset در سانفرانسیسکو است. مختصات این مکان عرض جغرافیایی 37.7359 و طول جغرافیایی -122.5011 است.
  • مهد کودک سگ شما در پارک Mission Dolores، سانفرانسیسکو است. مختصات این مکان عبارتند از: عرض جغرافیایی 37.759773 و طول جغرافیایی -122.427063.

در زیر یک نمونه کد از یک پیام Shipment است که در آن شیء shipments شامل دو نوع پیام Shipment با مختصات مثال است.

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      }
    ],
    "vehicles": [
    ...
    ]
  }
}

Vehicle

نوع پیام Vehicle ، ساختار ویژگی وسیله نقلیه ای را که می تواند حمل و نقل را در یک مسیر انجام دهد، تعریف می کند.

A real life vehicle equals one `Vehicle` message, which is contained within a `vehicles` object

همانطور که در نمودار نشان داده شده است:

  • پیام Vehicle تمام اطلاعات یک وسیله نقلیه واقعی را دارد.
  • تمام پیام های Vehicle در قسمت vehicles مشخص شده است.
  • فیلد vehicles حاوی چندین پیام Vehicle است.

جدول زیر برخی از ویژگی های مربوط به یک Vehicle را شرح می دهد.

خواص توضیحات
startLocation و endLocation محل شروع و پایان وسایل نقلیه که بخشی از مسیر نهایی بهینه شده است. اگر تعریف نشده باشد، آنها به طور پیش فرض به اولین تحویل محموله و آخرین مکان تحویل محموله می پردازند.
costPerHour ، costPerKilometer ، costPerTraveledHour پارامترهای هزینه خاص خودرو توصیه می شود حداقل یک پارامتر هزینه در درخواست خود برای API برای بازگشت یک مسیر بهینه شده داشته باشید. برای اطلاعات بیشتر در مورد هزینه ها، مفهوم کلید مدل هزینه را ببینید.
startTimeWindows و endTimeWindows دوره های زمانی که یک وسیله نقلیه می تواند در یک مسیر حرکت کند را تعریف کنید. اینها باید در پنجره زمانی globalStartTime و globalEndTime تنظیم شده در ShipmentModel قرار گیرند. در حالی که این ویژگی مورد نیاز نیست، توصیه می شود آن را درج کنید زیرا بهینه ساز هنگام رعایت محدودیت های زمانی بهترین عملکرد را دارد.

نمونه Vehicle

در این مثال، شما یک سرویس مهدکودک سگ دارید و می‌خواهید مکان وسیله نقلیه خود را در شروع و پایان روز مشخص کنید و میزان بنزین مصرفی آن را مشخص کنید. نیازی نیست ساعت کاری خودرو را مشخص کنید زیرا با ساعاتی که در ویژگی های globalStartTime و globalEndTime در شی ShipmentModel تعریف کرده اید مطابقت دارد.

برای این مثال، مقادیر ویژگی Vehicle در درخواست شما به شرح زیر است:

اموال ارزش توضیحات
startLocation latitude : 37.759773، longitude : -122.427063 مختصات شروع مسیر برای وسیله نقلیه شما. اینها با مکان مهد کودک سگ شما که در پارک Mission Dolores، سانفرانسیسکو قرار دارد، مطابقت دارند.
endLocation latitude : 37.759773، longitude : -122.427063 مختصات پایانی مسیر برای وسیله نقلیه شما. اینها با مکان مهد کودک سگ شما که در پارک Mission Dolores، سانفرانسیسکو قرار دارد، مطابقت دارند.
costPerHour 27 چقدر به راننده برای رانندگی وسیله نقلیه مهد کودک سگ خود پرداخت می کنید. شما ساعتی 27 دلار به راننده می پردازید.

در زیر نمونه کدی از پیام Vehicle است که مقادیر نمونه سناریو را در خود جای داده است.

{
  "model": {
    "shipments": [
    ...
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "costPerHour": 27
      }
    ]
  }
}

برای لیست کامل املاک در Vehicle به مستندات مرجع مراجعه کنید.

نمونه درخواست کامل

نمونه کد زیر یک مثال درخواست کامل را ارائه می‌کند که نمونه‌های ShipmentModel ، Shipment و Vehicle را که در این سند نشان داده شده‌اند، ترکیب می‌کند.

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "costPerHour": 27
      }
    ],
    "globalStartTime": "2024-02-13T00:00:00.000Z",
    "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}