يوضّح لك هذا الدليل كيفية استرداد بيانات الرحلات مباشرةً من Fleet Engine، كبديل لاستخدام Consumer 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 |
|
استرداد نقاط الطريق المتبقية للرحلة
يحتوي كيان الرحلة على حقل متكرّر من النوع 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 للرحلة B بشكل مشابه، ولكن سيتم عرض أول ثلاثة إدخالات فقط، لأنّ نقطة التوقّف في الرحلة A ليست جزءًا من مسار الرحلة B.