אחזור נתוני נסיעות ישירות ממנוע הצי

Consumer SDK מספק יכולת מוכנה לשימוש באפליקציות לצרכנים שמאפשרות שיתוף נסיעה, כדי להציג את המיקום וההתקדמות של הרכב כשהוא נוסע במסע.

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

סקירה כללית

כדי לאחזר את פרטי הנסיעה ישירות מ-Fliet Engine, צריך להפעיל את השיטה GetTrip ולציין את התצוגה JOURNEY_SHARING_V1S (RPC | REST).

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);

האובייקט שיתקבל (RPC) | REST) יאוכלס בפרטים הבאים בהתאם למידע העדכני של הנסיעה:

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

ספקי נסיעות שיתופיות בדרך כלל בודקים בשירות הנסיעה את הסטטוס של כל נסיעה, מדי שתי עד חמש שניות, בזמן שהנוסעים עוקבים באופן פעיל אחר התקדמות הרכב. עדכוני מיקום הרכב בדרך כלל מתבצעים במרווחי זמן ארוכים יותר, למשל 10 שניות. אפשר לעקוב אחרי השדה Trip.last_location.update_time כדי לראות אם היו עדכונים מאז הקריאה הקודמת ל-GetTrip.

ציוני דרך בנסיעה

הישות 'נסיעה' מכילה שדה חוזר מסוג TripWaypoint (RPC | REST). השדה הזה כולל את כל ציוני הדרך שהרכב צריך לנסוע בהם, לפי הסדר, לפני נקודת ההורדה הסופית של הנסיעה. ציון התצוגה 'שיתוף תהליך' מורה ל-Flet Engine להוסיף מידע מעודכן ל-שאר_waypoints[0] TripWaypoint. בתצוגות אחרות, שהן לא שיתוף נסיעה, ציון הדרך הזה לא משקפת בדרך כלל את המיקום האחרון של הרכב שהוקצה.

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

[0] location.point = travel.pickup_point.point
Tri_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng הראשון מהדרך שנותרה לאיסוף
LatLng השני מהדרך שנותרה לאיסוף
...
LatLng האחרון מהדרך שנותרה לאיסוף
Pick_point [נקודת_איסוף], אם שונה מהערך האחרון
traffic_data
Range_meters = המרחק מהיעד הנוכחי של Automotive_location לאורך path_to_waypoint עד לאיסוף
eta = זמן הגעה משוער מעודכן
משך זמן = משך הזמן המעודכן
[1] location.point = trip.dropoff_point.point
Tri_id = "trip_A"
ציון דרך_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng הראשון מרגל הנפילה
LatLng השני מרגל הנפילה
...
LatLng האחרון מרגל הנפילה
dropoff_point, אם שונה מהערך האחרון
traffic_data
מרחק_מטרים = המרחק מאיסוף לאורך path_to_waypoint עד לנטישה
eta = זמן הגעה משוער מעודכן
משך זמן = משך זמן של נשירה

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

[0] Tri_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[1] Tri_id = "trip_B"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[2] Tri_id = "trip_B"
ציון דרך_type = DROP_OFF_WAYPOINT_TYPE
[3] Tri_id = "trip_A"
ציון דרך_type = DROP_OFF_WAYPOINT_TYPE

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