เรียกดูข้อมูลการเดินทางจาก 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 = เวลาถึงโดยประมาณที่อัปเดตแล้ว
duration = updated duration
[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 = เวลาถึงโดยประมาณที่อัปเดตแล้ว
ระยะเวลา = ระยะเวลาของช่วงการออก

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