אחזור נתוני נסיעה ישירות מ-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 השדה הזה כולל את כל נקודות הביניים שהרכב צריך לעבור דרכן, לפי הסדר, לפני נקודת היעד הסופית של הנסיעה. הגדרת התצוגה של שיתוף המסלול אומרת ל-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 הראשונות מהנתיב שנותר לאיסוף
‫2nd LatLng from remaining path to pickup
...
הערך האחרון של LatLng מהנתיב שנותר עד לנקודת האיסוף
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[] ‫1st LatLng from dropoff leg
‫2nd LatLng from dropoff leg
...
last LatLng from dropoff leg
נקודת ההורדה, אם היא שונה מהנקודה האחרונה
traffic_data
‫distance_meters = המרחק מנקודת האיסוף לאורך הנתיב_לנקודת_ביניים לנקודת ההורדה
eta = updated ETA
משך = משך הקטע של החזרה

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