ایجاد سفرهای پشت‌سرهم

این سند نحوه ایجاد سفر پشت‌سرهم، تنظیم فیلدهای صحیح، و اختصاص آن به وسیله نقلیه برای انجام را شرح می‌دهد. فرض می‌شود که «موتور ناوگان» را راه‌اندازی کرده‌اید، خودروها را ایجاد کرده‌اید، برنامه راننده کاری دارید، و به‌صورت اختیاری، برنامه مصرف‌کننده دارید. همچنین باید با سناریوهای مختلف سفر که برای سفرهای درخواستی دردسترس است آشنا باشید. برای این کار، راهنماهای مرتبط زیر را ببینید:

اصول اولیه ایجاد سفر

این بخش جزئیات درخواست لازم برای ایجاد سفر در Fleet Engine را شرح می‌دهد. شما بااستفاده از gRPC و REST درخواست ایجاد صادر می‌کنید.

  • روش CreateTrip(): gRPC یا REST
  • پیام CreateTripRequest: فقط gRPC

فیلدهای سفر

از فیلدهای زیر برای ایجاد سفر در Fleet Engine استفاده کنید. می‌توانید از فیلدهای مختلف برای انواع مختلف سفرها استفاده کنید: تک‌مقصد یا چندمقصد، پشت‌سرهم، یا سفرهای استخری مشترک. هنگام ایجاد سفر می‌توانید فیلدهای اختیاری را ارائه دهید یا می‌توانید آن‌ها را بعداً هنگام به‌روزرسانی سفر تنظیم کنید.

فیلدهای سفر
نام الزامی است؟ شرح
ولی بله رشته‌ای که شامل شناسه پروژه است. این شناسه باید همان شناسه‌ای باشد که در سراسر ادغام Fleet Engine شما با همان نقش‌های حساب سرویس استفاده می‌شود.
trip_id بله رشته‌ای که ایجاد می‌کنید و این سفر را به‌طور منحصربه‌فرد شناسایی می‌کند. شناسه‌های سفر محدودیت‌های خاصی دارند که در مرجع نشان داده شده است.
trip_type بله TripType را برای نوع سفری که ایجاد می‌کنید روی مقادیر زیر تنظیم کنید:
  • مقصد تکی: روی SHARED یا EXCLUSIVE تنظیم کنید.
  • چندمقصد: روی EXCLUSIVE تنظیم شد.
  • پشت‌سرهم: روی EXCLUSIVE تنظیم شده است.
  • استخر مشترک: روی SHARED تنظیم شده است.
pickup_point بله نقطه مبدأ سفر.
مقصدهای میانی بله

فقط سفرهای چندمقصدی: فهرست مقصدهای میانی که راننده بین سوار کردن و پیاده کردن مسافر از آن‌ها بازدید می‌کند. مانند dropoff_point، این فیلد را نیز می‌توان بعداً با فراخوانی UpdateTrip تنظیم کرد، اما سفر چندمقصدی طبق تعریف شامل مقصدهای میانی است.

vehicle_waypoints بله

فقط سفرهای استخر مشترک: این فیلد از درهم‌آمیزی ایستگاه‌های بین راهی از چند سفر پشتیبانی می‌کند. این فایل شامل همه ایستگاه‌های بین راهی باقی‌مانده برای وسیله نقلیه اختصاص‌یافته و همچنین ایستگاه‌های بین راهی تحویل و تحویل‌گیری برای این سفر است. می‌توانید این فیلد را با فراخوانی CreateTrip یا UpdateTrip تنظیم کنید. همچنین می‌توانید نقاط‌مسیر خودرو را ازطریق فیلد waypoints با فراخوانی UpdateVehicle به‌روز کنید. به‌دلیل مسائل حریم خصوصی، سرویس این اطلاعات را در تماس‌های GetTrip برنمی‌گرداند.

number_of_passengers نه تعداد مسافران در سفر.
dropoff_point نه مقصد سفر.
vehicle_id نه شناسه خودرو اختصاص‌داده‌شده به سفر.

مثال: ایجاد سفر پشت‌سرهم

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

// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE)
    .setPickupPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .setVehicleId(VEHICLE_ID)
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId(TRIP_ID)
    .setTrip(trip)
    .build();

// Error handling.
try {
  // Fleet Engine automatically assigns a 'waypoints' list to the trip containing
  // the vehicle's current trip waypoints.
  Trip createdTrip =
      tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

به‌روزرسانی سفرهای پشت‌سرهم

وقتی خودرویی را برای سفر پشت‌سرهم اختصاص می‌دهید، سفری را به خودرو اختصاص می‌دهید حتی اگر قبلاً سفری به آن اختصاص داده شده باشد.

هر سفری که در Fleet Engine ایجاد می‌شود باید به خودرویی اختصاص داده شود تا Fleet Engine بتواند «زمان‌های تخمینی رسیدن» سفر را محاسبه کند و آن را ردیابی کند. می‌توانید این کار را درطول ایجاد سفر یا بعداً هنگام به‌روزرسانی سفر انجام دهید.

پس‌از اینکه سفر را به خودرو اختصاص دادید، Fleet Engine به‌طور خودکار نقطه‌مسیرهای مرتبط با سفرهای پشت‌سرهم را به فیلد نقطه‌مسیرهای خودرو اضافه می‌کند. فیلد remainingWaypoints سفر حاوی فهرستی از همه ایستگاه‌های بین راه است، ازجمله ایستگاه‌های بین راه سفرهای دیگر که قبل‌از محل پیاده کردن سفر بازدید خواهند شد.

برای مثال، دو سفر پشت سر هم را درنظر بگیرید: سفر A و سفر B. خودرو مصرف‌کننده را برای سفر الف سوار کرده است و درحالی‌که در مسیر مکان پیاده کردن است، راننده درخواست سوار کردن مصرف‌کننده دیگری را برای سفر بعدی، سفر ب، دریافت می‌کند.

  • تماس با getVehicle() remainingWaypoints را برمی‌گرداند که شامل موارد زیر است:
    الف تحویل → ب تحویل گرفتن → ب تحویل.
  • یا getTrip() یا onTripRemainingWaypointsUpdated تماس برگشتی برای سفر A remainingWaypoints برمی‌گرداند که شامل این موارد است:
    محل پیاده شدن.
  • یا getTrip() یا onTripRemainingWaypointsUpdated برگشت تماس برای سفر B برمی‌گرداند remainingWaypoints که شامل این موارد است:
    A پیاده کردن → B سوار کردن → و B پیاده کردن.

قدم بعدی چیست