يوضّح لك هذا الدليل كيفية استرداد بيانات الرحلات مباشرةً من Fleet Engine، وذلك كبديل عن استخدام حزمة تطوير البرامج (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 |
|
استرداد نقاط التوقف المتبقية للرحلة
يحتوي عنصر الرحلة على حقل متكرّر من النوع TripWaypoint
. يتضمّن هذا الحقل
جميع نقاط التوقف التي يجب أن تجتازها المركبة بالترتيب قبل
نقطة الاستلام النهائية لهذه الرحلة. يؤدي تحديد عرض "مشاركة الرحلة" إلى توجيه
Fleet Engine إلى وضع المعلومات المعدَّلة في remaining_waypoints[0]
TripWaypoint
. في طرق العرض الأخرى غير "مشاركة الرحلة"، لا يعكس عادةً نقطة التوقف هذه
آخر موضع للمركبة المحدّدة. اطّلِع على
مرجع RPC أو REST.
لمزيد من المعلومات، يُرجى الاطّلاع على حالة الرحلة ونقاط الطريق المتبقية للمركبة في دليل مقدّمة عن الرحلات.
في ما يلي مثال على حقل remaining_waypoints
لرحلة، "الرحلة أ":
| |||||||||||||||||||||
|
في حال الرحلات المتتالية والرحلات المشتركة، قد تحتوي هذه القائمة على نقاط تفتيش
من رحلات أخرى يجب المرور بها قبل هذه الرحلة. على سبيل المثال، ضع في اعتبارك
السيناريو الذي يتم فيه إسناد الرحلة "ب" إلى المركبة نفسها التي تم إسناد الرحلة "أ" إليها. سيتمّ بعد ذلك تعبئة الحقل
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
في الرحلة "ب" بالطريقة نفسها، ولكن لن تظهر سوى
الإدخالات الثلاثة الأولى، لأنّ نقطة التسليم في الرحلة "أ" ليست جزءًا
من مسار الرحلة "ب".