Consumer SDK یک قابلیت کلید در دست برای اشتراکگذاری برنامههای مصرفکننده برای نمایش مکان و پیشرفت وسیله نقلیهای که آنها را در سفر میبرد، فراهم میکند.
با این حال، برخی از ارائهدهندگان Rideshare میخواهند کنترل بیشتری بر تجربه مشتری نهایی خود با یکپارچهسازی انعطافپذیر داشته باشند، در حالی که همچنان از موقعیت مکانی خودرو، ETA و مسیر دقیق و بیدرنگ Google استفاده میکنند. این راهنما به شما نشان میدهد که چگونه دادههای سفر را مستقیماً از Fleet Engine بازیابی کنید، به عنوان جایگزینی برای استفاده از Consumer SDK.
بررسی اجمالی
برای بازیابی مستقیم اطلاعات سفر از Fleet Engine، با مشخص کردن نمای JOURNEY_SHARING_V1S ( RPC | REST ) با روش 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 ( 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)
ارائه دهندگان Rideshare معمولاً وضعیت هر سفر را هر دو تا پنج ثانیه یک بار در حالی که سوارکار به طور فعال پیشرفت وسیله نقلیه را زیر نظر دارد، نظرسنجی می کنند. بهروزرسانی مکان خودرو معمولاً در بازه زمانی طولانیتری مانند 10 ثانیه انجام میشود. فیلد Trip.last_location.update_time
را می توان برای مشاهده اینکه آیا از زمان تماس قبلی با GetTrip
به روز رسانی شده است، نظارت کرد.
ایستگاه های بین راهی سفر
موجودیت Trip حاوی یک فیلد تکراری از نوع TripWaypoint
( RPC | REST ) است. این فیلد شامل تمام نقاط بین راهی است که وسیله نقلیه برای طی کردن آنها به ترتیب قبل از نقطه پایانی این سفر به آنها نیاز دارد. مشخص کردن نمای اشتراکگذاری سفر، به Fleet Engine میگوید که اطلاعات بهروز شده را در resting_waypoints[0] TripWaypoint
قرار دهد. در نماهای دیگر، غیر اشتراک گذاری سفر، آن نقطه بین معمولاً آخرین موقعیت وسیله نقلیه تعیین شده را منعکس نمی کند.
در اینجا نمونه ای از فیلد remaining_waypoints
در سفر A آورده شده است:
| |||||||||||||||||||||
|
با سفرهای پشت سر هم و مشترک (کارپول)، این فهرست ممکن است حاوی نقاطی از سفرهای دیگر باشد که در طول این سفر طی خواهند شد. به عنوان مثال، سناریویی را در نظر بگیرید که در آن سفر B به همان وسیله نقلیه سفر A اختصاص داده می شود. قسمت remaining_waypoints
برای سفر A به صورت زیر پر می شود. (بیشتر فیلدها به دلیل مختصر بودن حذف شده اند، اما مطابق با مثال قبلی پر می شوند.)
[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 نیست.