بازیابی مستقیم داده‌های سفر از Fleet Engine

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

برای جزئیات استفاده از «کیت توسعه نرم‌افزار مصرف‌کننده»، هم‌رسانی سفرها برای سفرهای درخواست‌محور را ببینید.

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

برای بازیابی اطلاعات سفر مستقیماً از Fleet Engine، روش GetTrip را فراخوانی کنید و نمای JOURNEY_SHARING_V1S را مشخص کنید. به مرجع RPC یا REST مراجعه کنید.

معمولاً سرور شما وضعیت هر سفر را از سرویس سفر درخواست می‌کند درحالی‌که مسافر به‌طور فعال پیشرفت خودرو را پایش می‌کند. به‌روزرسانی‌های مکان خودرو معمولاً هر ۱۰ ثانیه یک‌بار انجام می‌شود و سیستم شما باید با همان نرخ نظرسنجی کند. فیلد 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 برای یک سفر، «سفر الف»، آورده شده است:

[۰] location.point = trip.pickup_point.point
‫trip_id = «trip_A»
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] اولین طول و عرض جغرافیایی از مسیر باقی‌مانده تا سوار کردن
‫LatLng دوم از مسیر باقی‌مانده تا محل پیکاپ
…
آخرین LatLng از مسیر باقی‌مانده تا محل تحویل
pickup_point، اگر با مورد قبلی متفاوت است
traffic_data
distance_meters = فاصله از vehicle_location کنونی درطول path_to_waypoint تا محل پیک‌آپ
eta = زمان تقریبی ورود به‌روزرسانی‌شده
مدت زمان = مدت زمان به‌روزرسانی‌شده
[۱] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] اولین طول و عرض جغرافیایی از بخش پیاده کردن
دومین LatLng از مرحله پیاده کردن
…
آخرین LatLng از بخش پیاده کردن
dropoff_point، اگر با آخرین مورد متفاوت باشد
traffic_data
فاصله_متر = فاصله از محل سوار شدن درطول مسیر_تا_ایستگاه تا محل پیاده شدن
eta = زمان تقریبی ورود به‌روزرسانی‌شده
مدت زمان = مدت زمان بخش پیاده‌سازی

با سفرهای پی‌درپی و استخری مشترک، این فهرست ممکن است حاوی ایستگاه‌های بین راهی از سفرهای دیگر باشد که باید قبل‌از این سفر طی شوند. برای مثال، سناریویی را درنظر بگیرید که در آن «سفر ب» به همان خودرو «سفر الف» اختصاص داده شده است. سپس فیلد remaining_waypoints برای «سفر الف» به‌صورت زیر پر می‌شود. بیشتر فیلدها برای خلاصه شدن حذف شده‌اند، اما این فیلدها مطابق با مثال قبلی تکمیل می‌شوند.

[۰] trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
[۱] trip_id = "trip_B"
waypoint_type = PICKUP_WAYPOINT_TYPE
[۲] trip_id = "trip_B"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
[۳] trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE

فیلد remaining_waypoint «سفر B» به‌طور مشابه تکمیل می‌شود، اما فقط سه ورودی اول وجود خواهد داشت، زیرا نقطه پیاده کردن «سفر A» بخشی از مسیر «سفر B» نیست.