אחזור נתוני נסיעה ישירות מ-Flet Engine

במדריך הזה מוסבר איך לאחזר נתוני נסיעה ישירות מ-Fleet Engine, כחלופה לשימוש ב-SDK לצרכנים. כך תוכלו לקבל יותר שליטה בחוויית משתמש הקצה, ובמקביל ליהנות מהיתרונות של מיקום הרכב המדויק בזמן אמת, זמן ההגעה המשוער והניתוב של המנוע של Fleet.

במאמר שיתוף מסלולים בנסיעות על פי דרישה מוסבר על השימוש ב-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. בתצוגות אחרות, שאינן 'שיתוף המסלול', נקודת הציון הזו בדרך בדרך כלל לא משקפת את המיקום העדכני ביותר של הרכב שהוקצה. אפשר לעיין במאמר העזרה של RPC או REST.

מידע נוסף זמין בקטע סטטוס הנסיעה ונקודות הדרך שנותרו לרכב במדריך מבוא לנסיעות.

דוגמה לשדה remaining_waypoints לנסיעה, נסיעה א':

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] קו הרוחב והאורך הראשון מהנתיב שנותר לאיסוף
LatLng השני מהנתיב שנותר לאיסוף
...
LatLng האחרון מהנתיב שנותר עד האיסוף
נקודת איסוף (pickup_point), אם היא שונה מקודמת
traffic_data
length_meters = המרחק מ-vehicle_location (מיקום הרכב הנוכחי) הנוכחי path_to_waypoint עד האיסוף
eta = זמן הגעה משוער מעודכן
duration = updated duration
[1] location.point = Tri.dropoff_point.point
trip_id = "trip_A"
weekpoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng הראשון מקטע הסיום
LatLng השני מקטע הסיום
...
LatLng האחרון מקטע הסיום
dropoff_point, אם הוא שונה מהנקודה האחרונה
traffic_data
distance_meters = distance from pickup along path_to_waypoint to dropoff
eta = זמן הגעה משוער מעודכן
duration = drop-off leg duration

בנסיעות רצופות ובנסיעות שיתופיות, הרשימה הזו עשויה לכלול נקודות דרך מנסיעות אחרות שצריך לעבור עליהן לפני הנסיעה הזו. לדוגמה, נניח שנסיעה ב'ב' משויכת לאותו רכב שנסיעה ב'א' משויכת אליו. השדה remaining_waypoints בנסיעה א' יאוכלס באופן הבא. רוב השדות הושמטו מטעמי תמציתיות, אבל הם יאוכלסו בהתאם לדוגמה הקודמת.

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

השדה remaining_waypoint של נסיעה ב' יהיה מאוכלס באופן דומה, אבל רק שלוש הרשומות הראשונות יופיעו, כי נקודת ההורדה של נסיעה א' לא נכללת במסלול של נסיעה ב'.