सीधे Fleet Engine से यात्रा का डेटा वापस पाएं

इस गाइड में बताया गया है कि Consumer SDK का इस्तेमाल करने के बजाय, सीधे तौर पर Fleet Engine से यात्रा का डेटा कैसे पाया जा सकता है. इस तरीके का इस्तेमाल करके, अपने ड्राइवर के अनुभव को बेहतर बनाया जा सकता है. साथ ही, Fleet Engine की सटीक और रीयल-टाइम में मिलने वाली इन सुविधाओं का फ़ायदा उठाया जा सकता है: वाहन की जगह की जानकारी, पहुंचने का अनुमानित समय, और रूट की जानकारी.

Consumer SDK टूल इस्तेमाल करने के बारे में जानने के लिए, मांग पर उपलब्ध यात्राओं के लिए यात्राएं शेयर करना लेख पढ़ें.

यात्रा की जानकारी वापस पाना

Fleet Engine से सीधे तौर पर यात्रा की जानकारी पाने के लिए, GetTrip तरीके का इस्तेमाल करें. इसके लिए, JOURNEY_SHARING_V1S व्यू तय करें. RPC या REST के लिए रेफ़रंस देखें.

आम तौर पर, आपका सर्वर हर यात्रा की स्थिति के बारे में जानकारी पाने के लिए, यात्रा की सेवा देने वाली कंपनी से पोल करता है. ऐसा तब होता है, जब राइडर वाहन की प्रोग्रेस पर नज़र रख रहा हो. वाहन की जगह की जानकारी आम तौर पर हर 10 सेकंड में अपडेट होती है. आपका सिस्टम भी इसी दर पर पोल करना चाहिए. Trip.last_location.update_time फ़ील्ड को मॉनिटर किया जा सकता है. इससे यह पता चलता है कि GetTrip को पिछली बार कॉल करने के बाद से कोई अपडेट हुआ है या नहीं.

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 टाइप का दोहराया गया फ़ील्ड होता है. इस फ़ील्ड में वे सभी वेपॉइंट शामिल होते हैं जहां वाहन को इस यात्रा के फ़ाइनल ड्रॉप-ऑफ़ पॉइंट से पहले जाना होगा. यात्रा की जानकारी शेयर करने की सुविधा के लिए व्यू तय करने से, Fleet Engine को यह पता चलता है कि अपडेट की गई जानकारी को remaining_waypoints[0] TripWaypoint में डालना है. जर्नी शेयर करने की सुविधा के अलावा, अन्य व्यू में उस वेपॉइंट से आम तौर पर, असाइन किए गए वाहन की मौजूदा जगह के बारे में पता नहीं चलता. आरपीसी या REST के लिए रेफ़रंस देखें.

ज़्यादा जानकारी के लिए, यात्राओं के बारे में बुनियादी जानकारी वाली गाइड में, यात्रा की स्थिति और वाहन के बचे हुए वेपॉइंट देखें.

यहां यात्रा A के लिए, remaining_waypoints फ़ील्ड का उदाहरण दिया गया है:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] पिकअप के लिए बचे हुए रास्ते का पहला LatLng
पिकअप के लिए बचे हुए रास्ते का दूसरा LatLng
...
पिकअप करने के लिए बचे हुए रास्ते का आखिरी LatLng
अगर पिकअप पॉइंट पिछले पिकअप पॉइंट से अलग है, तो pickup_point
traffic_data
distance_meters = current vehicle_location से pickup तक के path_to_waypoint की दूरी
eta = updated ETA
duration = updated duration
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] ड्रॉपऑफ़ लेग से पहला LatLng
ड्रॉपऑफ़ लेग का दूसरा LatLng
...
ड्रॉपऑफ़ लेग से मिला आखिरी LatLng
ड्रॉपऑफ़ पॉइंट, अगर यह पिछले पॉइंट से अलग है
traffic_data
distance_meters = distance from pickup along path_to_waypoint to dropoff
eta = updated ETA
duration = drop-off leg duration

एक के बाद एक और शेयर की गई पूलिंग यात्राओं के लिए, इस सूची में इस यात्रा से पहले तय किए जाने वाले अन्य यात्राओं के वेपॉइंट शामिल हो सकते हैं. उदाहरण के लिए, मान लें कि यात्रा B को यात्रा A के लिए इस्तेमाल किए गए वाहन को ही असाइन किया गया है. इसके बाद, यात्रा A के लिए remaining_waypoints फ़ील्ड में यह वैल्यू दिखेगी. ज़्यादा जानकारी न देने के लिए, ज़्यादातर फ़ील्ड हटा दिए गए हैं. हालांकि, इन्हें पिछले उदाहरण के हिसाब से भरा जाएगा.

[0] trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
[1] trip_id = "trip_B"
waypoint_type = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
[3] trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE

यात्रा B के remaining_waypoint फ़ील्ड में भी इसी तरह का डेटा भरा जाएगा. हालांकि, इसमें सिर्फ़ पहले तीन स्टॉप शामिल होंगे, क्योंकि यात्रा A का ड्रॉप-ऑफ़ पॉइंट, यात्रा B के रास्ते में नहीं आता है.