একটি ট্রিপ শেষ হওয়ার সাথে সাথেই আরেকটি ট্রিপ শুরু করা

এই ডকুমেন্ট থেকে আপনি জানতে পারবেন কীভাবে ব্যাক-টু-ব্যাক ট্রিপ তৈরি করতে হয়, সঠিক ফিল্ড সেট করতে হয় এবং এটি সম্পূর্ণ করার জন্য কোনও গাড়িকে অ্যাসাইন করতে হয়। এটি ধরে নেয় যে আপনি 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-এ কল করে এই ফিল্ড সেট করতে পারবেন। এছাড়াও, আপনি UpdateVehicle-এ কল করে waypoints ফিল্ডের মাধ্যমে গাড়ির ওয়েপয়েন্ট আপডেট করতে পারবেন। গোপনীয়তা সংক্রান্ত কারণে পরিষেবাটি 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 ট্রিপের ETA হিসেব করতে এবং এটি ট্র্যাক করতে পারে। আপনি ট্রিপ তৈরি করার সময় অথবা পরে ট্রিপ আপডেট করার সময় এটি করতে পারেন।

আপনি কোনও গাড়ির জন্য ট্রিপ অ্যাসাইন করার পরে, Fleet Engine অটোমেটিক ব্যাক-টু-ব্যাক ট্রিপের সাথে সম্পর্কিত ওয়েপয়েন্ট গাড়ির ওয়েপয়েন্ট ফিল্ডে যোগ করে। একটি ট্রিপের remainingWaypoints ফিল্ডে সব ওয়েপয়েন্টের তালিকা থাকে, যার মধ্যে অন্যান্য ট্রিপের ওয়েপয়েন্টও অন্তর্ভুক্ত থাকে যেগুলি ট্রিপের ড্রপ-অফের আগে ভিজিট করা হবে।

যেমন, পরপর দুটি ট্রিপের কথা ভাবুন: ট্রিপ ক এবং ট্রিপ খ। গাড়িটি ট্রিপ ক-এর জন্য গ্রাহককে পিক-আপ করেছে এবং ড্রপ-অফ লোকেশনে যাওয়ার পথে ড্রাইভার পরবর্তী ট্রিপ, ট্রিপ খ-এর জন্য অন্য একজন গ্রাহককে পিক-আপ করার অনুরোধ পেয়েছেন।

  • getVehicle()-এ কল করলে remainingWaypoints রিটার্ন করে যার মধ্যে এগুলি থাকে:
    A ড্রপ-অফ → B পিক-আপ → B ড্রপ-অফ.
  • getTrip() অথবা onTripRemainingWaypointsUpdated কলব্যাক ট্রিপ A remainingWaypoints রিটার্ন করে যার মধ্যে আছে:
    একটি ড্রপ-অফ।
  • getTrip() অথবা onTripRemainingWaypointsUpdated কলব্যাক ট্রিপ B-এর জন্য remainingWaypoints রিটার্ন করে যাতে এগুলি থাকে:
    A ড্রপ-অফ → B পিক-আপ → এবং B ড্রপ-অফ।

এর পরে কী করতে হবে