ফ্লিট ইঞ্জিন থেকে সরাসরি ট্রিপ ডেটা পুনরুদ্ধার করুন

এই নির্দেশিকাটি আপনাকে দেখাবে কিভাবে কনজিউমার এসডিকে (Consumer SDK) ব্যবহারের বিকল্প হিসেবে সরাসরি ফ্লিট ইঞ্জিন (Fleet Engine) থেকে ট্রিপ ডেটা সংগ্রহ করা যায়। ফ্লিট ইঞ্জিনের নির্ভুল ও রিয়েল-টাইম গাড়ির অবস্থান, পৌঁছানোর আনুমানিক সময় (ETA), এবং রুটিং-এর সুবিধা নেওয়ার পাশাপাশি, আপনি আপনার এন্ড-ইউজার অভিজ্ঞতার উপর আরও বেশি নিয়ন্ত্রণ পেতে এই পদ্ধতিটি ব্যবহার করতে পারেন।

কনজিউমার এসডিকে ব্যবহারের বিস্তারিত জানতে, ‘অন-ডিমান্ড ট্রিপের জন্য জার্নি শেয়ার করুন’ দেখুন।

ভ্রমণের তথ্য পুনরুদ্ধার করুন

সরাসরি ফ্লিট ইঞ্জিন থেকে ট্রিপের তথ্য পেতে, JOURNEY_SHARING_V1S ভিউটি উল্লেখ করে GetTrip মেথডটি কল করুন। RPC বা REST- এর জন্য রেফারেন্স দেখুন।

যখন আরোহী সক্রিয়ভাবে গাড়ির অগ্রগতি পর্যবেক্ষণ করেন, তখন আপনার সার্ভার সাধারণত প্রতিটি ট্রিপের অবস্থা জানার জন্য ট্রিপ সার্ভিসকে পোল করে। গাড়ির অবস্থানের আপডেট সাধারণত প্রতি ১০ সেকেন্ডে হয় এবং আপনার সিস্টেমেরও একই হারে পোল করা উচিত। আগের GetTrip কলের পর কোনো আপডেট হয়েছে কিনা তা দেখার জন্য Trip.last_location.update_time ফিল্ডটি পর্যবেক্ষণ করা যেতে পারে।

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

String tripName = "providers/" + PROJECT_ID + "/trips/" + TRIP_ID;
GetTripRequest getTripRequest =
    GetTripRequest.newBuilder()
        .setName(tripName)
        .setView(JOURNEY_SHARING_V1S)
        .build();
Trip trip = tripService.getTrip(getTripRequest);

ফলস্বরূপ প্রাপ্ত Trip অবজেক্টটিতে ট্রিপটির জন্য সর্বশেষ উপলব্ধ তথ্য দিয়ে নিম্নলিখিত ফিল্ডগুলি পূরণ করা থাকে:

name trip_status remaining_waypoints
vehicle_id trip_type last_location
number_of_passengers pickup_point view (== JOURNEY_SHARING_V1S)
actual_pickup_point intermediate_destinations intermediate_destination_index
pickup_time intermediate_destinations_version dropoff_point
actual_dropoff_point dropoff_time

অবশিষ্ট ভ্রমণ পথের বিন্দুগুলি পুনরুদ্ধার করুন

Trip এনটিটিতে TripWaypoint টাইপের একটি রিপিটেড ফিল্ড থাকে। এই ফিল্ডটিতে সেই সমস্ত ওয়েপয়েন্ট ক্রমানুসারে অন্তর্ভুক্ত থাকে, যেগুলি এই ট্রিপের চূড়ান্ত ড্রপ-অফ পয়েন্টের আগে যানবাহনটিকে অতিক্রম করতে হবে। Journey Sharing ভিউ নির্দিষ্ট করলে Fleet Engine-কে remaining_waypoints[0] TripWaypoint এ আপডেট করা তথ্য রাখতে বলা হয়। অন্যান্য, নন-Journey Sharing ভিউতে, সেই ওয়েপয়েন্টটি সাধারণত নির্ধারিত যানবাহনের সর্বশেষ অবস্থান প্রতিফলিত করে না। RPC বা REST- এর জন্য রেফারেন্স দেখুন।

আরও তথ্যের জন্য, ট্রিপ পরিচিতি গাইডের ট্রিপ স্ট্যাটাস এবং অবশিষ্ট যানবাহন ওয়েপয়েন্টগুলো দেখুন।

এখানে ট্রিপ A-এর জন্য remaining_waypoints ফিল্ডের একটি উদাহরণ দেওয়া হলো:

[0] অবস্থান.পয়েন্ট = ট্রিপ.পিকআপ_পয়েন্ট.পয়েন্ট
trip_id = "ট্রিপ_এ"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] পিকআপ পর্যন্ত অবশিষ্ট পথের প্রথম অক্ষাংশ ও দ্রাঘিমাংশ।
পিকআপ পর্যন্ত অবশিষ্ট পথের দ্বিতীয় অক্ষাংশ ও দ্রাঘিমাংশ।
...
পিকআপ পর্যন্ত অবশিষ্ট পথের শেষ অক্ষাংশ ও দ্রাঘিমাংশ
পিকআপ_পয়েন্ট, যদি শেষ থেকে ভিন্ন হয়
ট্র্যাফিক_ডেটা
distance_meters = বর্তমান vehicle_location থেকে path_to_waypoint বরাবর পিকআপ পর্যন্ত দূরত্ব
eta = হালনাগাদকৃত আনুমানিক আগমনের সময়
সময়কাল = হালনাগাদকৃত সময়কাল
[1] অবস্থান.বিন্দু = ভ্রমণ.অবতরণ_বিন্দু.বিন্দু
ট্রিপ_আইডি = "ট্রিপ_এ"
ওয়েপয়েন্ট_টাইপ = ড্রপ_অফ_ওয়েপয়েন্ট_টাইপ
path_to_waypoint = LatLng[] ড্রপঅফ লেগ থেকে প্রথম অক্ষাংশ ও দ্রাঘিমাংশ
ড্রপঅফ লেগ থেকে ২য় অক্ষাংশ ও দ্রাঘিমাংশ
...
ড্রপঅফ লেগ থেকে শেষ অক্ষাংশ-দ্রাঘিমাংশ
ড্রপঅফ_পয়েন্ট, যদি শেষ থেকে ভিন্ন হয়
ট্র্যাফিক_ডেটা
distance_meters = path_to_waypoint বরাবর পিকআপ থেকে ড্রপঅফ পর্যন্ত দূরত্ব
eta = হালনাগাদকৃত আনুমানিক আগমনের সময়
সময়কাল = ড্রপ-অফ লেগের সময়কাল

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

[0] ট্রিপ_আইডি = "ট্রিপ_এ"
ওয়েপয়েন্ট_টাইপ = পিকআপ_ওয়েপয়েন্ট_টাইপ
[1] ট্রিপ_আইডি = "ট্রিপ_বি"
ওয়েপয়েন্ট_টাইপ = পিকআপ_ওয়েপয়েন্ট_টাইপ
[2] ট্রিপ_আইডি = "ট্রিপ_বি"
ওয়েপয়েন্ট_টাইপ = ড্রপ_অফ_ওয়েপয়েন্ট_টাইপ
[3] ট্রিপ_আইডি = "ট্রিপ_এ"
ওয়েপয়েন্ট_টাইপ = ড্রপ_অফ_ওয়েপয়েন্ট_টাইপ

ট্রিপ B-এর remaining_waypoint ফিল্ডটিও একইভাবে পূরণ করা হবে, কিন্তু সেখানে কেবল প্রথম তিনটি এন্ট্রি থাকবে, কারণ ট্রিপ A-এর নামার স্থানটি ট্রিপ B-এর রুটের অংশ নয়।