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

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

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

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

  • متد CreateTrip() : gRPC یا REST
  • پیام CreateTripRequest : فقط gRPC

زمینه‌های سفر

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

زمینه‌های سفر
نام الزامی است؟ توضیحات
والدین بله رشته‌ای که شامل شناسه پروژه است. این شناسه باید همان شناسه‌ای باشد که در کل یکپارچه‌سازی Fleet Engine شما، با همان نقش‌های حساب سرویس، استفاده می‌شود.
شناسه سفر بله رشته‌ای که شما ایجاد می‌کنید و به طور منحصر به فرد این سفر را مشخص می‌کند. شناسه‌های سفر محدودیت‌های خاصی دارند، همانطور که در مرجع ذکر شده است.
نوع_سفر بله برای نوع سفری که ایجاد می‌کنید، TripType را روی مقادیر زیر تنظیم کنید:
  • مقصد واحد : روی SHARED یا EXCLUSIVE تنظیم کنید.
  • چند مقصدی : روی EXCLUSIVE تنظیم کنید.
  • پشت سر هم : روی EXCLUSIVE تنظیم کنید.
  • اشتراک‌گذاری مشترک : روی SHARED تنظیم شود.
نقطه برداشت بله نقطه مبدا سفر.
مقاصد میانی بله

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

نقاط مسیر وسیله نقلیه بله

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

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

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

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

قدم بعدی چیست؟