استرجع بيانات الرحلة مباشرةً من Fleet Engine

يوضح لك هذا الدليل كيفية استرداد بيانات الرحلة مباشرةً من Fleet Engine بدلاً من استخدام حزمة تطوير البرامج (SDK) الخاصة بالمستهلك يمكنك استخدام هذا النهج للتحكم بشكلٍ أكبر في تجربة المستخدم النهائي مع الاستفادة من الموقع الجغرافي للمركبة ووقت الوصول المقدَّر ومسار التنقّل الدقيق في الوقت الفعلي من Fleet Engine.

لمعرفة تفاصيل عن استخدام حزمة تطوير البرامج (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 لرحلة، "الرحلة أ":

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] الإحداثيات الجغرافية الأولى للطول والعرض من المسار المتبقّي إلى نقطة الاستلام
الإحداثيات الجغرافية الثانية للطول والعرض من المسار المتبقّي إلى نقطة الاستلام
...
خط الطول والعرض الأخير من المسار المتبقي إلى استلام الطلب
pickup_point، إذا كان مختلفًا عن آخر
traffic_data
بُعد_المسافة = المسافة من تحديد موقع المركبة الحالي على طول المسار_إلى_نقطة_الاستلام
الوقت المقدر للوصول = الوقت المقدر للوصول
المدة = المدة المعدّلة
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] خط الطول الأول للمرة الأولى من نقطة النزول
خط الطول الثاني الثاني من نقطة النزول
...
خط الطول والعرض الأخير من مرحلة التسليم
dropoff_point، إذا كان مختلفًا عن آخر
traffic_data
بُعد_المسافة = المسافة من نقطة الاستلام على طول المسار_إلى_نقطة_الإنزال
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 في الرحلة "ب" بالطريقة نفسها، ولكن لن تظهر سوى الإدخالات الثلاثة الأولى، لأنّ نقطة التسليم في الرحلة "أ" ليست جزءًا من مسار الرحلة "ب".