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

במדריך הזה מוסבר איך לאחזר נתוני נסיעות ישירות מ-Fleet Engine, כחלופה לשימוש ב-Consumer SDK. אתם יכולים להשתמש בגישה הזו כדי לשלוט טוב יותר בחוויית משתמשי הקצה, ועדיין ליהנות מהמיקום המדויק של הרכב בזמן אמת, מזמן ההגעה המשוער ומהמסלול של 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. השדה הזה כולל את כל נקודות הציון שהרכב צריך לעבור בהן, לפי הסדר, לפני נקודת ההורדה הסופית של הנסיעה הזו. כשמציינים את התצוגה Journey Sharing, המערכת של 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[] הנקודה הראשונה של קו הרוחב וקו האורך מהמסלול שנותר עד לאיסוף
‫2nd LatLng from remaining path to pickup
...
הקואורדינטות האחרונות של קו הרוחב וקו האורך מהמסלול שנותר עד לנקודת האיסוף
pickup_point, if different from last
traffic_data
distance_meters = distance from current vehicle_location along path_to_waypoint to pickup
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 = המרחק מנקודת האיסוף לאורך הנתיב, דרך נקודת הביניים, עד לנקודת המסירה
eta = updated ETA
duration = drop-off leg duration

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

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