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

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

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

این بخش جزئیات درخواست لازم برای ایجاد یک سفر در 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 تنظیم کرد، اما یک سفر چند مقصد بنا به تعریف شامل مقصدهای میانی است.

وسایل نقلیه_ایستگاه های راه بله

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

تعداد_مسافران خیر تعداد مسافران در سفر.
dropoff_point خیر مقصد سفر
شناسه_خودرو خیر شناسه وسیله نقلیه اختصاص داده شده به سفر.

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

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

// 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 ETAهای سفر را محاسبه کند و آن را ردیابی کند. می‌توانید این کار را در حین ایجاد سفر یا بعداً هنگام به‌روزرسانی سفر انجام دهید.

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

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

  • فراخوانی getVehicle() remainingWaypoints برمی گرداند که حاوی:
    A Drop-offB PickupB Drop-off .
  • یا getTrip() یا onTripRemainingWaypointsUpdated برای سفر A remainingWaypoints برمی گرداند که حاوی:
    یک رها کردن .
  • یا getTrip() یا onTripRemainingWaypointsUpdated برای Trip B remainingWaypoints برمی گرداند که حاوی:
    A Drop-offB Pickup → و B Drop-off .

بعدش چی