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

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

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