ব্যাক-টু-ব্যাক ট্রিপ তৈরি করুন

এই দস্তাবেজটি বর্ণনা করে যে কীভাবে একটি ব্যাক-টু-ব্যাক ট্রিপ তৈরি করতে হয়, সঠিক ক্ষেত্র সেট করতে হয় এবং এটি পূরণ করার জন্য একটি গাড়িতে বরাদ্দ করা হয়। এটি অনুমান করে যে আপনি ফ্লিট ইঞ্জিন সেট আপ করেছেন, আপনি যানবাহন তৈরি করেছেন, একটি কার্যকরী ড্রাইভার অ্যাপ রয়েছে এবং ঐচ্ছিকভাবে, একটি ভোক্তা অ্যাপ রয়েছে। চাহিদা অনুযায়ী ভ্রমণের জন্য উপলব্ধ বিভিন্ন ট্রিপ পরিস্থিতির সাথেও আপনার পরিচিত হওয়া উচিত। এর জন্য নিম্নলিখিত সম্পর্কিত গাইড দেখুন:

ট্রিপ তৈরির মৌলিক বিষয়

এই বিভাগটি ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করার জন্য প্রয়োজনীয় অনুরোধের বিবরণ বর্ণনা করে। আপনি gRPC এবং REST ব্যবহার করে একটি তৈরির অনুরোধ জারি করেন।

  • CreateTrip() পদ্ধতি: gRPC বা REST
  • CreateTripRequest বার্তা: শুধুমাত্র gRPC

ট্রিপ ক্ষেত্র

ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন৷ আপনি বিভিন্ন ধরণের ভ্রমণের জন্য বিভিন্ন ক্ষেত্র ব্যবহার করতে পারেন: একক- বা বহু-গন্তব্য, ব্যাক-টু-ব্যাক, বা শেয়ার্ড পুলিং ট্রিপ। আপনি ট্রিপ তৈরি করার সময় ঐচ্ছিক ক্ষেত্রগুলি সরবরাহ করতে পারেন, অথবা আপনি যখন ট্রিপ আপডেট করবেন তখন আপনি সেগুলি সেট করতে পারেন৷

ট্রিপ ক্ষেত্র
নাম প্রয়োজন? বর্ণনা
অভিভাবক হ্যাঁ একটি স্ট্রিং যা প্রজেক্ট আইডি অন্তর্ভুক্ত করে। এই আইডিটি অবশ্যই একই আইডি হতে হবে যা আপনার পুরো ফ্লিট ইঞ্জিন ইন্টিগ্রেশন জুড়ে একই পরিষেবা অ্যাকাউন্টের ভূমিকা সহ ব্যবহৃত হয়৷
trip_id হ্যাঁ আপনার তৈরি করা একটি স্ট্রিং যা এই ট্রিপটিকে অনন্যভাবে চিহ্নিত করে। ট্রিপ আইডির নির্দিষ্ট কিছু বিধিনিষেধ রয়েছে, যেমনটি রেফারেন্সে উল্লেখ করা হয়েছে।
ট্রিপ_টাইপ হ্যাঁ আপনি যে ট্রিপ টাইপ তৈরি করছেন তার জন্য নিম্নলিখিত মানগুলিতে TripType সেট করুন:
  • একক গন্তব্য : SHARED বা EXCLUSIVE সেট করুন।
  • মাল্টি-গন্তব্য : EXCLUSIVE সেট করুন।
  • ব্যাক-টু-ব্যাক : EXCLUSIVE তে সেট করুন।
  • শেয়ার্ড পুলিং : SHARED এ সেট করুন।
পিকআপ_পয়েন্ট হ্যাঁ ট্রিপ এর মূল বিন্দু.
মধ্যবর্তী গন্তব্য হ্যাঁ

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

যানবাহন_ওয়েপয়েন্ট হ্যাঁ

শুধুমাত্র শেয়ার্ড-পুলিং ট্রিপ : এই ক্ষেত্রটি একাধিক ট্রিপ থেকে ওয়েপয়েন্ট ইন্টারলেভিং সমর্থন করে। এটিতে নির্ধারিত গাড়ির জন্য বাকি সমস্ত পথপয়েন্ট, সেইসাথে এই ট্রিপের জন্য পিকআপ এবং ড্রপ-অফ ওয়েপয়েন্ট রয়েছে। আপনি CreateTrip বা UpdateTrip কল করে এই ক্ষেত্রটি সেট করতে পারেন। এছাড়াও আপনি UpdateVehicle এ কল দিয়ে waypoints ফিল্ডের মাধ্যমে গাড়ির ওয়েপয়েন্ট আপডেট করতে পারেন। গোপনীয়তার কারণে পরিষেবাটি GetTrip কলে এই তথ্য ফেরত দেয় না।

যাত্রীদের_সংখ্যা না ট্রিপে যাত্রীর সংখ্যা।
ড্রপঅফ_পয়েন্ট না ভ্রমণের গন্তব্য।
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;
}

ব্যাক-টু-ব্যাক ট্রিপ আপডেট করুন

আপনি যখন ব্যাক-টু-ব্যাক ট্রিপের জন্য একটি যানবাহন বরাদ্দ করেন, তখন আপনি একটি যানবাহনকে একটি ট্রিপ বরাদ্দ করেন যদিও এটি ইতিমধ্যে একটি বরাদ্দ করা হয়েছে।

ফ্লিট ইঞ্জিনে তৈরি যেকোন ট্রিপকে অবশ্যই একটি গাড়ির জন্য বরাদ্দ করতে হবে যাতে ফ্লিট ইঞ্জিন ট্রিপের ETA গণনা করতে এবং এটি ট্র্যাক করতে পারে। আপনি ট্রিপ তৈরির সময় বা পরে যখন আপনি ট্রিপ আপডেট করবেন তখন আপনি এটি করতে পারেন।

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

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

  • getVehicle() কল করলে remainingWaypoints ফিরে আসে যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপবি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ A- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ B- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপ → এবং বি ড্রপ-অফ

এরপর কি

,

এই দস্তাবেজটি বর্ণনা করে যে কীভাবে একটি ব্যাক-টু-ব্যাক ট্রিপ তৈরি করতে হয়, সঠিক ক্ষেত্র সেট করতে হয় এবং এটি পূরণ করার জন্য একটি গাড়িতে বরাদ্দ করা হয়। এটি অনুমান করে যে আপনি ফ্লিট ইঞ্জিন সেট আপ করেছেন, আপনি যানবাহন তৈরি করেছেন, একটি কার্যকরী ড্রাইভার অ্যাপ রয়েছে এবং ঐচ্ছিকভাবে, একটি ভোক্তা অ্যাপ রয়েছে। চাহিদা অনুযায়ী ভ্রমণের জন্য উপলব্ধ বিভিন্ন ট্রিপ পরিস্থিতির সাথেও আপনার পরিচিত হওয়া উচিত। এর জন্য নিম্নলিখিত সম্পর্কিত গাইড দেখুন:

ট্রিপ তৈরির মৌলিক বিষয়

এই বিভাগটি ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করার জন্য প্রয়োজনীয় অনুরোধের বিবরণ বর্ণনা করে। আপনি gRPC এবং REST ব্যবহার করে একটি তৈরির অনুরোধ জারি করেন।

  • CreateTrip() পদ্ধতি: gRPC বা REST
  • CreateTripRequest বার্তা: শুধুমাত্র gRPC

ট্রিপ ক্ষেত্র

ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন৷ আপনি বিভিন্ন ধরণের ভ্রমণের জন্য বিভিন্ন ক্ষেত্র ব্যবহার করতে পারেন: একক- বা বহু-গন্তব্য, ব্যাক-টু-ব্যাক, বা শেয়ার্ড পুলিং ট্রিপ। আপনি ট্রিপ তৈরি করার সময় ঐচ্ছিক ক্ষেত্রগুলি সরবরাহ করতে পারেন, অথবা আপনি যখন ট্রিপ আপডেট করবেন তখন আপনি সেগুলি সেট করতে পারেন৷

ট্রিপ ক্ষেত্র
নাম প্রয়োজন? বর্ণনা
অভিভাবক হ্যাঁ একটি স্ট্রিং যা প্রজেক্ট আইডি অন্তর্ভুক্ত করে। এই আইডিটি অবশ্যই একই আইডি হতে হবে যা আপনার পুরো ফ্লিট ইঞ্জিন ইন্টিগ্রেশন জুড়ে একই পরিষেবা অ্যাকাউন্টের ভূমিকা সহ ব্যবহৃত হয়৷
trip_id হ্যাঁ আপনার তৈরি করা একটি স্ট্রিং যা এই ট্রিপটিকে অনন্যভাবে চিহ্নিত করে। ট্রিপ আইডির নির্দিষ্ট কিছু বিধিনিষেধ রয়েছে, যেমনটি রেফারেন্সে উল্লেখ করা হয়েছে।
ট্রিপ_টাইপ হ্যাঁ আপনি যে ট্রিপ টাইপ তৈরি করছেন তার জন্য নিম্নলিখিত মানগুলিতে TripType সেট করুন:
  • একক গন্তব্য : SHARED বা EXCLUSIVE সেট করুন।
  • মাল্টি-গন্তব্য : EXCLUSIVE সেট করুন।
  • ব্যাক-টু-ব্যাক : EXCLUSIVE তে সেট করুন।
  • শেয়ার্ড পুলিং : SHARED এ সেট করুন।
পিকআপ_পয়েন্ট হ্যাঁ ট্রিপ এর মূল বিন্দু.
মধ্যবর্তী গন্তব্য হ্যাঁ

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

যানবাহন_ওয়েপয়েন্ট হ্যাঁ

শুধুমাত্র শেয়ার্ড-পুলিং ট্রিপ : এই ক্ষেত্রটি একাধিক ট্রিপ থেকে ওয়েপয়েন্ট ইন্টারলেভিং সমর্থন করে। এটিতে নির্ধারিত গাড়ির জন্য বাকি সমস্ত পথপয়েন্ট, সেইসাথে এই ট্রিপের জন্য পিকআপ এবং ড্রপ-অফ ওয়েপয়েন্ট রয়েছে। আপনি CreateTrip বা UpdateTrip কল করে এই ক্ষেত্রটি সেট করতে পারেন। এছাড়াও আপনি UpdateVehicle এ কল দিয়ে waypoints ফিল্ডের মাধ্যমে গাড়ির ওয়েপয়েন্ট আপডেট করতে পারেন। গোপনীয়তার কারণে পরিষেবাটি GetTrip কলে এই তথ্য ফেরত দেয় না।

যাত্রীদের_সংখ্যা না ট্রিপে যাত্রীর সংখ্যা।
ড্রপঅফ_পয়েন্ট না ভ্রমণের গন্তব্য।
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;
}

ব্যাক-টু-ব্যাক ট্রিপ আপডেট করুন

আপনি যখন ব্যাক-টু-ব্যাক ট্রিপের জন্য একটি যানবাহন বরাদ্দ করেন, তখন আপনি একটি যানবাহনকে একটি ট্রিপ বরাদ্দ করেন যদিও এটি ইতিমধ্যে একটি বরাদ্দ করা হয়ে থাকে।

ফ্লিট ইঞ্জিনে তৈরি যেকোন ট্রিপকে অবশ্যই একটি গাড়ির জন্য বরাদ্দ করতে হবে যাতে ফ্লিট ইঞ্জিন ট্রিপের ETA গণনা করতে এবং এটি ট্র্যাক করতে পারে। আপনি ট্রিপ তৈরির সময় বা পরে যখন আপনি ট্রিপ আপডেট করবেন তখন আপনি এটি করতে পারেন।

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

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

  • getVehicle() কল করলে remainingWaypoints ফিরে আসে যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপবি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ A- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ B- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপ → এবং বি ড্রপ-অফ

এরপর কি

,

এই দস্তাবেজটি বর্ণনা করে যে কীভাবে একটি ব্যাক-টু-ব্যাক ট্রিপ তৈরি করতে হয়, সঠিক ক্ষেত্র সেট করতে হয় এবং এটি পূরণ করার জন্য একটি গাড়িতে বরাদ্দ করা হয়। এটি অনুমান করে যে আপনি ফ্লিট ইঞ্জিন সেট আপ করেছেন, আপনি যানবাহন তৈরি করেছেন, একটি কার্যকরী ড্রাইভার অ্যাপ রয়েছে এবং ঐচ্ছিকভাবে, একটি ভোক্তা অ্যাপ রয়েছে। চাহিদা অনুযায়ী ভ্রমণের জন্য উপলব্ধ বিভিন্ন ট্রিপ পরিস্থিতির সাথেও আপনার পরিচিত হওয়া উচিত। এর জন্য নিম্নলিখিত সম্পর্কিত গাইড দেখুন:

ট্রিপ তৈরির মৌলিক বিষয়

এই বিভাগটি ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করার জন্য প্রয়োজনীয় অনুরোধের বিবরণ বর্ণনা করে। আপনি gRPC এবং REST ব্যবহার করে একটি তৈরির অনুরোধ জারি করেন।

  • CreateTrip() পদ্ধতি: gRPC বা REST
  • CreateTripRequest বার্তা: শুধুমাত্র gRPC

ট্রিপ ক্ষেত্র

ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন৷ আপনি বিভিন্ন ধরণের ভ্রমণের জন্য বিভিন্ন ক্ষেত্র ব্যবহার করতে পারেন: একক- বা বহু-গন্তব্য, ব্যাক-টু-ব্যাক, বা শেয়ার্ড পুলিং ট্রিপ। আপনি ট্রিপ তৈরি করার সময় ঐচ্ছিক ক্ষেত্রগুলি সরবরাহ করতে পারেন, অথবা আপনি যখন ট্রিপ আপডেট করবেন তখন আপনি সেগুলি সেট করতে পারেন৷

ট্রিপ ক্ষেত্র
নাম প্রয়োজন? বর্ণনা
অভিভাবক হ্যাঁ একটি স্ট্রিং যা প্রজেক্ট আইডি অন্তর্ভুক্ত করে। এই আইডিটি অবশ্যই একই আইডি হতে হবে যা আপনার পুরো ফ্লিট ইঞ্জিন ইন্টিগ্রেশন জুড়ে একই পরিষেবা অ্যাকাউন্টের ভূমিকা সহ ব্যবহৃত হয়৷
trip_id হ্যাঁ আপনার তৈরি করা একটি স্ট্রিং যা এই ট্রিপটিকে অনন্যভাবে চিহ্নিত করে। ট্রিপ আইডির নির্দিষ্ট কিছু বিধিনিষেধ রয়েছে, যেমনটি রেফারেন্সে উল্লেখ করা হয়েছে।
ট্রিপ_টাইপ হ্যাঁ আপনি যে ট্রিপ টাইপ তৈরি করছেন তার জন্য নিম্নলিখিত মানগুলিতে TripType সেট করুন:
  • একক গন্তব্য : SHARED বা EXCLUSIVE সেট করুন।
  • মাল্টি-গন্তব্য : EXCLUSIVE সেট করুন।
  • ব্যাক-টু-ব্যাক : EXCLUSIVE তে সেট করুন।
  • শেয়ার্ড পুলিং : SHARED এ সেট করুন।
পিকআপ_পয়েন্ট হ্যাঁ ট্রিপ এর মূল বিন্দু.
মধ্যবর্তী গন্তব্য হ্যাঁ

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

যানবাহন_ওয়েপয়েন্ট হ্যাঁ

শুধুমাত্র শেয়ার্ড-পুলিং ট্রিপ : এই ক্ষেত্রটি একাধিক ট্রিপ থেকে ওয়েপয়েন্ট ইন্টারলেভিং সমর্থন করে। এটিতে নির্ধারিত গাড়ির জন্য বাকি সমস্ত পথপয়েন্ট, সেইসাথে এই ট্রিপের জন্য পিকআপ এবং ড্রপ-অফ ওয়েপয়েন্ট রয়েছে। আপনি CreateTrip বা UpdateTrip কল করে এই ক্ষেত্রটি সেট করতে পারেন। এছাড়াও আপনি UpdateVehicle এ কল দিয়ে waypoints ফিল্ডের মাধ্যমে গাড়ির ওয়েপয়েন্ট আপডেট করতে পারেন। গোপনীয়তার কারণে পরিষেবাটি GetTrip কলে এই তথ্য ফেরত দেয় না।

যাত্রীদের_সংখ্যা না ট্রিপে যাত্রীর সংখ্যা।
ড্রপঅফ_পয়েন্ট না ভ্রমণের গন্তব্য।
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;
}

ব্যাক-টু-ব্যাক ট্রিপ আপডেট করুন

আপনি যখন ব্যাক-টু-ব্যাক ট্রিপের জন্য একটি যানবাহন বরাদ্দ করেন, তখন আপনি একটি যানবাহনকে একটি ট্রিপ বরাদ্দ করেন যদিও এটি ইতিমধ্যে একটি বরাদ্দ করা হয়েছে।

ফ্লিট ইঞ্জিনে তৈরি যেকোন ট্রিপকে অবশ্যই একটি গাড়ির জন্য বরাদ্দ করতে হবে যাতে ফ্লিট ইঞ্জিন ট্রিপের ETA গণনা করতে এবং এটি ট্র্যাক করতে পারে। আপনি ট্রিপ তৈরির সময় বা পরে যখন আপনি ট্রিপ আপডেট করবেন তখন আপনি এটি করতে পারেন।

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

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

  • getVehicle() কল করলে remainingWaypoints ফিরে আসে যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপবি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ A- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ B- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপ → এবং বি ড্রপ-অফ

এরপর কি

,

এই দস্তাবেজটি বর্ণনা করে যে কীভাবে একটি ব্যাক-টু-ব্যাক ট্রিপ তৈরি করতে হয়, সঠিক ক্ষেত্র সেট করতে হয় এবং এটি পূরণ করার জন্য একটি গাড়িতে বরাদ্দ করা হয়। এটি অনুমান করে যে আপনি ফ্লিট ইঞ্জিন সেট আপ করেছেন, আপনি যানবাহন তৈরি করেছেন, একটি কার্যকরী ড্রাইভার অ্যাপ রয়েছে এবং ঐচ্ছিকভাবে, একটি ভোক্তা অ্যাপ রয়েছে। চাহিদা অনুযায়ী ভ্রমণের জন্য উপলব্ধ বিভিন্ন ট্রিপ পরিস্থিতির সাথেও আপনার পরিচিত হওয়া উচিত। এর জন্য নিম্নলিখিত সম্পর্কিত গাইড দেখুন:

ট্রিপ তৈরির মৌলিক বিষয়

এই বিভাগটি ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করার জন্য প্রয়োজনীয় অনুরোধের বিবরণ বর্ণনা করে। আপনি gRPC এবং REST ব্যবহার করে একটি তৈরির অনুরোধ জারি করেন।

  • CreateTrip() পদ্ধতি: gRPC বা REST
  • CreateTripRequest বার্তা: শুধুমাত্র gRPC

ট্রিপ ক্ষেত্র

ফ্লিট ইঞ্জিনে একটি ট্রিপ তৈরি করতে নিম্নলিখিত ক্ষেত্রগুলি ব্যবহার করুন৷ আপনি বিভিন্ন ধরণের ভ্রমণের জন্য বিভিন্ন ক্ষেত্র ব্যবহার করতে পারেন: একক- বা বহু-গন্তব্য, ব্যাক-টু-ব্যাক, বা শেয়ার্ড পুলিং ট্রিপ। আপনি ট্রিপ তৈরি করার সময় ঐচ্ছিক ক্ষেত্রগুলি সরবরাহ করতে পারেন, অথবা আপনি যখন ট্রিপ আপডেট করবেন তখন আপনি সেগুলি সেট করতে পারেন৷

ট্রিপ ক্ষেত্র
নাম প্রয়োজন? বর্ণনা
অভিভাবক হ্যাঁ একটি স্ট্রিং যা প্রজেক্ট আইডি অন্তর্ভুক্ত করে। এই আইডিটি অবশ্যই একই আইডি হতে হবে যা আপনার পুরো ফ্লিট ইঞ্জিন ইন্টিগ্রেশন জুড়ে একই পরিষেবা অ্যাকাউন্টের ভূমিকা সহ ব্যবহৃত হয়৷
trip_id হ্যাঁ আপনার তৈরি করা একটি স্ট্রিং যা এই ট্রিপটিকে অনন্যভাবে চিহ্নিত করে। ট্রিপ আইডির নির্দিষ্ট কিছু বিধিনিষেধ রয়েছে, যেমনটি রেফারেন্সে উল্লেখ করা হয়েছে।
ট্রিপ_টাইপ হ্যাঁ আপনি যে ট্রিপ টাইপ তৈরি করছেন তার জন্য নিম্নলিখিত মানগুলিতে TripType সেট করুন:
  • একক গন্তব্য : SHARED বা EXCLUSIVE সেট করুন।
  • মাল্টি-গন্তব্য : EXCLUSIVE সেট করুন।
  • ব্যাক-টু-ব্যাক : EXCLUSIVE তে সেট করুন।
  • শেয়ার্ড পুলিং : SHARED এ সেট করুন।
পিকআপ_পয়েন্ট হ্যাঁ ট্রিপ এর মূল বিন্দু.
মধ্যবর্তী গন্তব্য হ্যাঁ

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

যানবাহন_ওয়েপয়েন্ট হ্যাঁ

শুধুমাত্র শেয়ার্ড-পুলিং ট্রিপ : এই ক্ষেত্রটি একাধিক ট্রিপ থেকে ওয়েপয়েন্ট ইন্টারলেভিং সমর্থন করে। এটিতে নির্ধারিত গাড়ির জন্য বাকি সমস্ত পথপয়েন্ট, সেইসাথে এই ট্রিপের জন্য পিকআপ এবং ড্রপ-অফ ওয়েপয়েন্ট রয়েছে। আপনি CreateTrip বা UpdateTrip কল করে এই ক্ষেত্রটি সেট করতে পারেন। এছাড়াও আপনি UpdateVehicle এ কল দিয়ে waypoints ফিল্ডের মাধ্যমে গাড়ির ওয়েপয়েন্ট আপডেট করতে পারেন। গোপনীয়তার কারণে পরিষেবাটি GetTrip কলে এই তথ্য ফেরত দেয় না।

যাত্রীদের_সংখ্যা না ট্রিপে যাত্রীর সংখ্যা।
ড্রপঅফ_পয়েন্ট না ভ্রমণের গন্তব্য।
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;
}

ব্যাক-টু-ব্যাক ট্রিপ আপডেট করুন

আপনি যখন ব্যাক-টু-ব্যাক ট্রিপের জন্য একটি যানবাহন বরাদ্দ করেন, তখন আপনি একটি যানবাহনকে একটি ট্রিপ বরাদ্দ করেন যদিও এটি ইতিমধ্যে একটি বরাদ্দ করা হয়েছে।

ফ্লিট ইঞ্জিনে তৈরি যেকোন ট্রিপকে অবশ্যই একটি গাড়ির জন্য বরাদ্দ করতে হবে যাতে ফ্লিট ইঞ্জিন ট্রিপের ETA গণনা করতে এবং এটি ট্র্যাক করতে পারে। আপনি ট্রিপ তৈরির সময় বা পরে যখন আপনি ট্রিপ আপডেট করবেন তখন আপনি এটি করতে পারেন।

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

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

  • getVehicle() কল করলে remainingWaypoints ফিরে আসে যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপবি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ A- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফ
  • হয় getTrip() অথবা ট্রিপ B- এর জন্য onTripRemainingWaypointsUpdated কলব্যাক remainingWaypoints ফেরত দেয় যাতে রয়েছে:
    একটি ড্রপ-অফবি পিকআপ → এবং বি ড্রপ-অফ

এরপর কি