یک سفر تک مقصد ایجاد کنید

این سند نحوه ایجاد یک سفر مقصد واحد، تنظیم فیلدهای صحیح و اختصاص آن به وسیله نقلیه برای انجام را شرح می دهد. فرض می‌کند که 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 خیر مقصد سفر
شناسه_خودرو خیر شناسه وسیله نقلیه اختصاص داده شده به سفر.

مثال: سفر تک مقصد

مثال زیر نحوه ایجاد یک سفر به مرکز خرید Grand Indonesia East را نشان می دهد. این سفر شامل دو مسافر است، منحصر به فرد است و وضعیت آن NEW است. provider_id سفر باید با شناسه پروژه Google Cloud یکی باشد. مثال‌ها یک پروژه Google Cloud را با شناسه پروژه my-rideshare-co-gcp-project نشان می‌دهند. برای تماس با Fleet Engine، این پروژه باید دارای حساب سرویس نیز باشد. برای جزئیات بیشتر به نقش‌های حساب سرویس مراجعه کنید.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

// Trip initial settings.
String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
    .setPickupPoint(                 // Grand Indonesia East Mall.
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setNumberOfPassengers(2)
    // Provide the drop-off point if available.
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId("trip-8241890")  // Trip ID assigned by the provider.
    .setTrip(trip)              // The initial state is NEW.
    .build();

// Error handling.
try {
  Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

بعدش چی