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

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

vehicle_waypoints بله

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

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

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

مثال زیر نشان می‌دهد که چگونه سفری به مرکز خرید گرند اندونزی ایست ایجاد کنید. این سفر دو مسافر دارد، انحصاری است، و وضعیت آن 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;
}

قدم بعدی چیست