داده های سفر را مستقیماً از Fleet Engine بازیابی کنید

این راهنما به شما نشان می‌دهد که چگونه داده‌های سفر را مستقیماً از Fleet Engine بازیابی کنید، به عنوان جایگزینی برای استفاده از Consumer SDK. شما می‌توانید از این رویکرد برای کنترل بیشتر بر تجربه کاربر نهایی خود استفاده کنید و در عین حال از موقعیت مکانی دقیق و بی‌درنگ خودرو، ETA و مسیریابی Fleet Engine استفاده کنید.

برای جزئیات استفاده از Consumer SDK، به اشتراک گذاری سفرها برای سفرهای درخواستی مراجعه کنید.

بازیابی اطلاعات سفر

برای بازیابی مستقیم اطلاعات سفر از Fleet Engine، با مشخص کردن نمای JOURNEY_SHARING_V1S ، با روش GetTrip تماس بگیرید. به مرجع 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

بازیابی نقاط بین راهی سفر

موجودیت Trip شامل یک فیلد مکرر از نوع TripWaypoint است. این فیلد شامل تمام نقاط بین راهی است که وسیله نقلیه باید به ترتیب قبل از نقطه خروج نهایی این سفر طی کند. مشخص کردن نمای اشتراک‌گذاری سفر، به Fleet Engine می‌گوید که اطلاعات به‌روز شده را در resting_waypoints[0] TripWaypoint قرار دهد. در نماهای دیگر، غیر اشتراک گذاری سفر، آن نقطه بین معمولاً آخرین موقعیت وسیله نقلیه تعیین شده را منعکس نمی کند. به مرجع RPC یا REST مراجعه کنید.

برای اطلاعات بیشتر، وضعیت سفر و نقاط بین راهی خودرو را در راهنمای مقدمه سفرها ببینید.

در اینجا نمونه ای از قسمت remaining_waypoints برای یک سفر، سفر A آمده است:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng 1 از مسیر باقی مانده تا پیکاپ
LatLng دوم از مسیر باقیمانده تا پیکاپ
...
آخرین LatLng از مسیر باقیمانده تا پیکاپ
pickup_point، اگر متفاوت از آخرین
ترافیک_داده
distance_meters = فاصله از مکان_خودروی فعلی در امتداد مسیر_تا_نقطه_راه تا پیکاپ
eta = ETA به روز شده
duration = مدت زمان به روز شده
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng 1 از پایه سقوط
LatLng دوم از پایه افت
...
آخرین LatLng از پایه سقوط
dropoff_point، اگر متفاوت از آخرین
ترافیک_داده
distance_meters = فاصله از پیکاپ در امتداد مسیر_تا_نقطه راه تا تخلیه
eta = ETA به روز شده
duration = مدت زمان افتادن پا

با سفرهای پشت سر هم و ادغام مشترک، این فهرست ممکن است حاوی نقاطی از سفرهای دیگر باشد که قبل از این سفر باید از آنها عبور کرد. به عنوان مثال، سناریویی را در نظر بگیرید که در آن سفر 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 نیست.