เรียกดูข้อมูลการเดินทางจาก Fleet Engine โดยตรง

คู่มือนี้จะแสดงวิธีดึงข้อมูลการเดินทางจาก Fleet Engine โดยตรงเพื่อเป็น ทางเลือกแทนการใช้ Consumer SDK คุณสามารถใช้วิธีนี้เพื่อควบคุมประสบการณ์ของผู้ใช้ปลายทางได้มากขึ้น พร้อมทั้งยังใช้ประโยชน์จากตำแหน่งที่แน่นอนของยานพาหนะ เวลาถึงโดยประมาณ และการกำหนดเส้นทางแบบเรียลไทม์ของ Fleet Engine ได้

ดูรายละเอียดเกี่ยวกับการใช้ Consumer 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[] LatLng แรกจากเส้นทางที่เหลือไปยังจุดรับ
LatLng ที่ 2 จากเส้นทางที่เหลือไปยังจุดรับ
...
LatLng สุดท้ายจากเส้นทางที่เหลือไปยังจุดรับ
pickup_point หากแตกต่างจากครั้งล่าสุด
traffic_data
distance_meters = ระยะทางจาก vehicle_location ปัจจุบันตาม path_to_waypoint ไปยังจุดรับ
eta = เวลาที่คาดว่าจะถึงที่อัปเดตแล้ว
ระยะเวลา = ระยะเวลาที่อัปเดต
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng แรกจากช่วงขาของการนำส่ง
LatLng ที่ 2 จากช่วงขาของการส่ง
...
LatLng สุดท้ายจากช่วงขาที่ส่ง
dropoff_point หากแตกต่างจากจุดสุดท้าย
traffic_data
distance_meters = ระยะทางจากจุดรับสินค้าตาม path_to_waypoint ไปยังจุดส่งสินค้า
eta = เวลาที่คาดว่าจะถึงที่อัปเดตแล้ว
ระยะเวลา = ระยะเวลาของขาที่ส่ง

สำหรับการเดินทางแบบต่อเนื่องและแบบรวมกลุ่ม รายการนี้อาจมีจุดแวะพัก จากการเดินทางอื่นๆ ที่ต้องผ่านก่อนการเดินทางนี้ ตัวอย่างเช่น พิจารณาสถานการณ์ที่กำหนดการเดินทาง B ให้กับยานพาหนะคันเดียวกับการเดินทาง A จากนั้นระบบจะป้อนข้อมูลในช่อง 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 ของการเดินทาง B จะได้รับการป้อนข้อมูลในลักษณะเดียวกัน แต่จะมีเฉพาะรายการแรก 3 รายการเท่านั้น เนื่องจากจุดส่งของการเดินทาง A ไม่ได้เป็นส่วนหนึ่งของเส้นทางการเดินทาง B