استرداد بيانات الرحلة مباشرة من أسطول المركبات

توفر حزمة SDK الخاصة بالمستهلكين إمكانية جاهزة لتطبيقات المستهلك الخاصة بمشاركة الرحلات لعرض الموقع الجغرافي للمركبة التي تنقلهم في رحلتهم ومستوى تقدُّمها.

في المقابل، يريد بعض "مقدّمي خدمات مشاركة الرحلات" المزيد من التحكّم في تجربة المستخدم النهائية من خلال الدمج المرن، مع الاستفادة في الوقت نفسه من الموقع الجغرافي الدقيق للمركبات في الوقت الفعلي والوقت المقدر للوصول والمسار الذي توفّره Google. يوضّح لك هذا الدليل كيفية استرداد بيانات الرحلة مباشرةً من Fleet Engine، كبديل لاستخدام حزمة SDK الخاصة بالمستهلكين.

نظرة عامة

لاسترداد معلومات الرحلة من Fleet Engine مباشرةً، يمكنك استدعاء الطريقة GetTrip، مع تحديد طريقة العرض JOURNEY_ تصور_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_ المُعلِن_V1S)

عادةً ما يقوم مقدمو خدمات مشاركة الرحلات باستطلاع آراء خدمة الرحلة لمعرفة حالة كل رحلة كل ثانيتين إلى خمس ثوانٍ بينما يراقب الراكب بشكل نشط تقدم المركبة. يتم عادةً تعديل الموقع الجغرافي للمركبة خلال فترة أطول، مثل 10 ثوانٍ. يمكن مراقبة الحقل Trip.last_location.update_time لمعرفة ما إذا كانت هناك أي تعديلات منذ المكالمة السابقة مع GetTrip.

نقاط المسار للرحلة

يحتوي كيان الرحلة على حقل متكرّر من النوع TripWaypoint (RPC | REST). يتضمن هذا الحقل جميع نقاط الطرق التي ستحتاج المركبة إلى اجتيازها، بالترتيب، قبل نقطة التوقف النهائية لهذه الرحلة. يؤدّي تحديد طريقة عرض "مشاركة الرحلة" إلى توجيه Fleet Engine إلى وضع المعلومات المعدّلة في "rearepoints_waypoints"[0] TripWaypoint. وفي طرق العرض الأخرى التي لا تمثّل "مشاركة الرحلة"، لا تعكس نقطة الطريق هذه عادةً آخر موضع للمركبة المخصّصة.

في ما يلي مثال على الحقل "remaining_waypoints" في الرحلة (أ):

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = خط الطول والعرض[] خط الطول الأول (LtLng) من المسار المتبقي حتى استلام الطلب
خط الطول الثاني بالصيغة التالية من المسار المتبقي حتى استلام الطلب
...
خط الطول الأخير من المسار المتبقي حتى الاستلام
pickup_point، إذا كان مختلفًا عن القيمة السابقة
traffic_data
مسافة_meters = المسافة من المركبة_location_الحالية على طول المسار_to_waypoint إلى الاستلام
الوقت المقدر للوصول = الوقت المقدر للوصول
المدة = المدة المعدَّلة
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = خط الطول والعرض[] خط الطول الأول من مرحلة الانسحاب
خط الطول الثاني (LtLng) من مرحلة الانسحاب
...
خط الطول الأخير من مرحلة الانسحاب
dropoff_point، إذا كان مختلفًا عن آخر
traffic_data
مسافة_meters = المسافة من الاستلام على طول path_to_waypoint إلى الانسحاب
الوقت المقدر للوصول = الوقت المقدر للوصول
المدة = مدة الانسحاب من المراحل

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