سفرهای درخواستی، سفرهای درخواستی

این سند خدمات سفرهای درخواستی را در Fleet Engine شرح می دهد. فرض بر این است که شما Fleet Engine چیست؟ و از قابلیت خدمات Fleet Engine خاصی که نیاز دارید آگاه هستید.

هنگام مطالعه این مستند، موارد زیر را در نظر داشته باشید:

  • شما سفرها را به وسایل نقلیه به عنوان راهی برای مدل سازی ارتباط واقعی بین سفر و راننده ای که آن سفر را تکمیل می کند اختصاص می دهید . برای درک بهتر نحوه عملکرد وسایل نقلیه در Fleet Engine ، مقدمه وسایل نقلیه را بخوانید.
  • این سند همچنین برخی از عناصر وسیله نقلیه را توصیف می کند که فقط برای سفرهای درخواستی اعمال می شوند.
  • Fleet Engine برای سفرهای درخواستی از دو منبع استفاده می کند : یک Trip و یک Vehicle . Fleet Engine هم سرویس gRPC و هم رابط های REST را ارائه می دهد:
    • TripService : gRPC و REST
    • VehicleService : gRPC و REST
    • برای سادگی، این راهنما از نمونه‌های gRPC استفاده می‌کند.

سفر درخواستی چیست؟

در Fleet Engine، یک سفر نشان دهنده یک سفر درخواستی است که می تواند اهداف حمل و نقل مختلفی را انجام دهد. مثلا:

  • افراد : یک یا چند نفر را از مکان های تحویل به محل تحویل حمل کنید.
  • غذا و کالا : یک یا چند سفارش غذا را از یک مکان تجاری خاص دریافت کنید و این سفارش‌ها را به یک یا چند گیرنده در مکانشان تحویل دهید.

عناصر سفر

تصویر زیر عناصر اساسی یک سفر را نشان می دهد: شناسه وسیله نقلیه اختصاص داده شده، وضعیت سفر، و ایستگاه های بین راهی سفر. انواع ایستگاه های بین راه بسته به مرحله سفر متفاوت است: پیکاپ، متوسط ​​و تحویل. در هر سفری، یک مقصد یا ایستگاه بین راهی اختیاری است. در مثال تصویر، خودرو به محل وانت رسیده است

مدل داده برای سفرها

همانطور که باطن شما سفرها را به وسایل نقلیه اختصاص می دهد، باید از سفرهای دیگر برنامه ریزی شده برای وسیله نقلیه نیز مطلع باشد. به همین دلیل، نمودارهای زیر مدل داده‌های منبع Trip را در کنار نمودار منبع Vehicle مرتبط با آن نشان می‌دهند. می توانید هر دو نمودار را مرور کنید تا روابط بین دو منبع را بررسی کنید و موارد زیر را در نظر داشته باشید:

  • سفرها با شناسه به وسیله نقلیه اختصاص داده می شوند .
  • ارتباط وسایل نقلیه سفر چند به یک است . به این معنا که یک سفر معین ممکن است تنها سفر برنامه ریزی شده برای وسیله نقلیه باشد، یا ممکن است یکی از بسیاری از سفرهای وسیله نقلیه باشد.
  • اشیاء سفر شامل دو لیست از ایستگاه های بین راهی سفر است ، یکی برای خود سفر و دیگری برای وسیله نقلیه اختصاص داده شده. در این سند با جزئیات بیشتر توضیح داده شده است.
  • خودروی درخواستی همچنین دارای فهرستی از ایستگاه های بین راهی است که در این سند به طور کامل توضیح داده شده است.

مدل داده سفر

مدل داده های خودرو

انواع سفر

وقتی سرویس شما سفری ایجاد می‌کند، می‌تواند فیلد tripType را به‌عنوان یکی از موارد زیر تنظیم کند: EXCLUSIVE یا SHARED .

سفرهای انحصاری

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

  • سفری با یک پیکاپ و یک بار تحویل برای وسیله نقلیه ای که هیچ سفر دیگری در برنامه خود ندارد.
  • سفری با پیکاپ، ایستگاه بین‌المللی و تحویل برای وسیله‌ای که هیچ سفر دیگری در برنامه خود ندارد.
  • سفری با پیکاپ و تحویل به پایان یک سفر از قبل برنامه ریزی شده برای وسیله نقلیه اضافه شده است. در این موارد، هر سفر منحصر به دیگری است، اما سفرها به صورت پشت سر هم ترتیب داده می شوند. علاوه بر این، در صورت لزوم، چنین سفرهایی می‌توانند شامل مقصدهای میانی نیز باشند.

سفرهای مشترک

سفر مشترک سفری است که سفر آن می تواند با سایر رزروهای سفر همپوشانی داشته باشد. برای این نوع سفرها، سیستم شما می‌تواند آنها را تعیین کند که همزمان با مقصدهای درهم‌پیچ انجام شوند. به عنوان مثال، رها کردن یک سفر ممکن است پس از تحویل گرفتن برای یک سفر دیگر اتفاق بیفتد. علاوه بر این، سفرهای مشترک ممکن است از ایستگاه های بین راهی استفاده نکنند.

به طور معمول، شما از یک سفر مشترک برای یکی از سناریوهای ادغام مشترک نشان داده شده در بخش سناریوهای سفر استفاده می کنید.

ایستگاه های بین راهی سفر

برای Google Maps، ایستگاه بین راهی مکانی در طول مسیر است که معمولاً با مختصات طول و عرض جغرافیایی تعریف می‌شود. برای سفرهای درخواستی، یک ایستگاه بین راهی با یک شی TripWaypoint نشان داده می شود که حاوی اطلاعات اضافی مانند موارد زیر است:

  • شناسه سفر
  • WaypointType ، یا پیکاپ، متوسط ​​یا تحویل
  • اطلاعات مسیر و فاصله بین ایستگاه قبلی سفر و مسیر فعلی
  • شرایط ترافیکی در طول مسیر به ایستگاه بین راهی سفر
  • زمان سفر و ETA به ایستگاه بین راه

مراجع را ببینید:

انواع ایستگاه های بین راهی سفر

نقطه گذر سفر در رابطه با چرخه عمر کلی سفر وسیله نقلیه تعریف می شود:

  • ایستگاه حمل و نقل - برای مبدأ یا شروع سفر استفاده می‌شود، مانند زمانی که راننده سفارش غذا را برای تحویل بعدی تحویل می‌گیرد، یا زمانی که راننده شخصی را برای تحویل بعدی می‌برد.
  • ایستگاه میانی — و مقصد میانی که می‌تواند برای اهداف مختلف مورد استفاده قرار گیرد، مانند زمانی که راننده یکی از مسافران همان مهمانی رزرو را پیاده می‌کند، اما خود سفر کامل نیست، زیرا مسافران بیشتری باقی می‌مانند. این نقطه بین راهی اختیاری است و فقط برای سفرهای انحصاری قابل استفاده است.
  • نقطه توقف - برای مکان نهایی سفر، مانند زمانی که مسافر باقی مانده از وسیله نقلیه خارج می شود، استفاده می شود.

لیست های ایستگاه های بین راهی سفر

یک موجودیت Trip شامل دو لیست از ایستگاه های بین راهی است که هر کدام یک فیلد تکراری از نوع TripWaypoint هستند. یک لیست آن زمینه های لازم برای خود سفر را توصیف می کند، و دیگری برای توصیف تمام ایستگاه های باقی مانده برای وسیله نقلیه مرتبط با سفر. این به شما امکان می دهد تصویر کاملی از تمام عناصر سفر داشته باشید: سفر و کل سفر وسیله نقلیه.

  • نقاط بین راهی برای وسیله نقلیه - فیلدی به نام vehicle_waypoints . این شامل تمام نقاط بین راهی برای تمام سفرهای اختصاص داده شده به وسیله نقلیه است.
  • نقاط بین راهی برای سفر — فیلدی که به آن remaining_waypoints می‌گویند. این شامل نقاطی است که وسیله نقلیه باید به ترتیب قبل از نقطه پایان سفر طی کند. سناریوها را در سناریوهای سفر ببینید.
    • برای یک سفر تک مقصدی که به وسیله نقلیه ای که هیچ سفر دیگری در برنامه آن وجود ندارد، اختصاص داده شده است، این فقط شامل یک وانت و یک مکان تحویل است، با این فرض که وسیله نقلیه از نقطه عبور وانت خارج نشده است.
    • برای هر سناریوی سفر دیگری که در آن وسیله نقلیه برای سفرهای دیگر نیز برنامه ریزی شده است، ایستگاه های بین راهی برای هر سفری در برنامه سفر آن شامل تمام نقاط بین سفرهای دیگر است که وسیله نقلیه باید قبل از رسیدن به نقطه بین راهی برای آن سفر طی کند. به عنوان مثال، در یک سفر پشت سر هم که وسیله نقلیه برای سفر A در مسیر رفت و برگشت است، نقاط بین راهی برای سفر B شامل نقطه خروجی سفر A است. موتور ناوگان این اطلاعات را با استفاده از میدان vehicle_waypoints .

مرجع موجودیت Trip را ببینید: gRPC یا REST .

سناریوهای سفر

نمودارهای زیر انواع سناریوهای سفر پشتیبانی شده را نشان می دهند. در این سناریوها، فقط سفر ادغام مشترک از نوع SHARED است. بقیه EXCLUSIVE هستند. نمودارها همچنین وضعیت سفر و نقاط بین راهی را برای وسیله نقلیه ای که سفر را انجام می دهد نشان می دهد، مفاهیمی که بعداً در این راهنما توضیح داده شده است.

سفر تک مقصد

سفر تک مقصدی یک سفر EXCLUSIVE با یک بار و یک مکان تحویل است. به عنوان مثال، یک راننده مسافری را از یک مکان می‌گیرد و به مکان دیگری می‌برد. یا یک راننده سفارش تحویل غذا را از یک رستوران دریافت می کند و آن را به مشتری تحویل می دهد.

سفرهای چند مقصدی

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

سفرهای پشت سر هم

سفرهای پشت سر هم سفرهای EXCLUSIVE هستند که شامل یک سری سفرهای مستقل هستند که یکی پس از دیگری انجام می شوند. هر سفر در زنجیره می تواند یک یا چند مقصد باشد. در این سناریو، یک راننده متعهد می شود که قبل از تکمیل سفر فعلی، مشتری دیگری را تحویل بگیرد.

این سفرها را فقط می توان به وسایل نقلیه ای اختصاص داد که امکان برنامه ریزی پشت سر هم را دارند. مرجع REST Vehicle ، gRPC را ببینید.

سفرهای استخری مشترک

یک سفر استخر مشترک با انواع دیگر سفر متفاوت است. اولاً، این سفر باید یک سفر SHARED باشد، نه یک سفر EXCLUSIVE . در اینجا، وسیله نقلیه سفرها را به طور همزمان انجام می دهد نه به ترتیب مانند سفرهای انحصاری. در حالی که یک سفر جمعی مشترک سفر خود را با سایر سفرها به اشتراک می گذارد، اطلاعات مکان تحویل و تحویل را بین سفرها به اشتراک نمی گذارد. در عوض، هر سفر یک رزرو انحصاری است به طوری که کاربر نهایی که یک سفر را رزرو کرده است نمی‌تواند اطلاعات پیکاپ یا مقصد سفر دیگری را ببیند. مثلا:

  • یک سرویس شاتل فرودگاهی مشتریان مختلفی را در محل اقامتشان می گیرد و آنها را در ترمینال های مختلف فرودگاه در طول مسیر می گذارد. شخص 2 ممکن است از برنامه مصرف کننده شما برای ردیابی پیشرفت سفر استفاده کند، اما برنامه او فقط قسمتی از سفر او را نشان می دهد و نه جایی که شخص 1 برده شده است و نه جایی که شخص 1 قرار است پیاده شود، حتی اگر قسمت هایی از سفرهای او همپوشانی
  • یک راننده تحویل غذا سه سفارش غذا را از یک رستوران می گیرد تا به محل اقامت مشتریان مختلف تحویل دهد. با استفاده از برنامه مصرف‌کننده‌تان، شخص 3 می‌تواند مکان و زمان دریافت غذای او را ببیند و مسیر راننده را ببیند، اما مکان‌های تحویل غذا برای افراد 1 و 2 را نبیند.

وضعیت سفر و چرخه عمر آن

این بخش وضعیت سفر و تأثیر آن بر وسیله نقلیه و سناریوهای مختلفی را که هنگام تعیین و مدیریت سفرهای درخواستی با آنها روبرو می شوید، توضیح می دهد.

یک سفر به طور کلی در حالات مختلفی از ایجاد تا تکمیل پیشرفت می کند. به طور کلی، یک سفر بسته به وضعیت آن می تواند فعال یا غیرفعال باشد. وضعیت سفر بر انواع سناریوهای مورد استفاده با موتور ناوگان و همچنین توانایی شما برای شناسایی پیشرفت خودرو در طول سفر تأثیر می گذارد. بقیه این سند به آن سناریوها می پردازد.

جدول زیر وضعیت سفر را بر اساس انواع فعال و غیرفعال فهرست می کند.

وضعیت های سفر فعال وضعیت های سفر غیر فعال
NEW
UNKNOWN_TRIP_STATUS
ENROUTE_TO_PICKUP
ARRIVED_AT_PICKUP
ENROUTE_TO_INTERMEDIATE_DESTINATION
ARRIVED_AT_INTERMEDIATE_DESTINATION
ENROUTE_TO_DROPOFF
COMPLETE
CANCELED

وضعیت سفر و ایستگاه های باقی مانده وسیله نقلیه

هنگام اختصاص سفرهای اضافی به وسیله نقلیه ای که قبلاً سفری را انجام می دهد، باید رابطه بین ایستگاه های بین راه باقی مانده برای وسیله نقلیه و نحوه تأثیر وضعیت سفر بر نقاط بین راهی باقی مانده را درک کنید.

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

در طول سفر وسیله نقلیه، Fleet Engine یک نقطه بین راهی سفر قبلی را تنها زمانی از لیست نقاط باقیمانده وسیله نقلیه حذف می کند که خودرو گزارش دهد که در مسیر به مقصد بعدی است یا تکمیل شده است. یعنی هر یک از موارد زیر:

  • ENROUTE_TO_INTERMEDIATE_DESTINATION
  • ENROUTE_TO_DROPOFF
  • تکمیل شد

هنگامی که وضعیت سفر به COMPLETED تغییر می کند، Fleet Engine نقطه پایانی سفر را از لیست ایستگاه های باقی مانده وسیله نقلیه حذف می کند.

در مقابل، تغییرات وضعیت که نشان دهنده رسیدن به یک ایستگاه بین راهی است، معمولاً تأثیری بر لیست نقاط باقیمانده برای وسیله نقلیه ندارد:

  • ARRIVED_AT_PICKUP
  • ARRIVED_AT_INTERMEDIATE_DESTINATION
  • ARRIVED_AT_DROPOFF

برای توضیح با یک مثال سواری بر حسب تقاضا: فرض کنید راننده مشتری را از محل اقامت خود می گیرد، او را به مکانی می برد که در آنجا منتظر می ماند تا مشتری کار خود را کامل کند و سپس مشتری را به محل اقامت خود باز می گرداند. هنگامی که در ابتدا ایجاد شد، سفر دارای سه نقطه راه است: PICKUP ، INTERMEDIATE و DROPOFF . جدول زیر نتایج یک پرس و جو برای نقاط بین راهی در حالت های مختلف سفر را نشان می دهد:

وضعیت سفر نقاط بین راه
ARRIVED_AT_PICKUP PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
COMPLETE PICKUP
INTERMEDIATE
DROPOFF

شرایط مورد نیاز برای سفرهای واگذار شده یا لغو شده

قبل از اینکه بتوانید هر یک از کارهای زیر را انجام دهید، باید وضعیت سفر را روی NEW یا CANCELED تنظیم کنید.

  • هنگام تغییر تکالیف وسیله نقلیه برای یک سفر . به عنوان مثال، اگر راننده یک وسیله نقلیه را برای یک سفر رد کند و باید به وسیله نقلیه دیگری تخصیص داده شود.
  • هنگام تسویه تکلیف وسیله نقلیه برای سفر . به عنوان مثال، اگر راننده سفری را در مسیر لغو کرد و می‌خواهید تخصیص وسیله نقلیه را پاک کنید، وضعیت باید NEW یا CANCELED باشد.

نتایج جستجو بر اساس وضعیت سفر

هنگامی که از سرویس SearchTrips برای وسیله نقلیه خاصی استفاده می کنید، لیست سفرهای فعال را در SearchTripsResponse برمی گرداند. سفرهای فعال نیز در فیلد active_trips نهاد Vehicle ظاهر می شوند. برای جزئیات به مرجع SearchTripsResponse مراجعه کنید: gRPC یا REST .

بنابراین، همه سفرهای با وضعیت فعال در قسمت active_trips ظاهر می شوند، اما سفرهای تکمیل شده یا لغو شده اینطور نیست.

بعدش چی