เรียกข้อมูลการเดินทางจากเครื่องมือของกลุ่มรถยนต์โดยตรง

Consumer SDK มอบความสามารถแบบครบวงจรสำหรับแอปผู้บริโภคที่ใช้บริการร่วมเดินทางในการแสดงตำแหน่งและความคืบหน้าของรถที่จะพาไปในเส้นทาง

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

ภาพรวม

หากต้องการเรียกดูข้อมูลการเดินทางจาก Fleet Engine โดยตรง ให้เรียกใช้เมธอด GetTrip โดยระบุมุมมอง JOURNEY_SHARING_V1S (RPC | REST)

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 (RPC | REST) ที่ได้จะมีช่องต่อไปนี้พร้อมข้อมูล ที่มีล่าสุดสำหรับทริป

  • name
  • vehicle_id
  • trip_status
  • trip_type
  • number_of_passengers
  • pickup_point
  • actual_pickup_point
  • pickup_time
  • intermediate_destinations
  • intermediate_destinations_version
  • intermediate_destination_index
  • dropoff_point
  • actual_dropoff_point
  • dropoff_time
  • remaining_waypoints
  • last_location
  • view (== JOURNEY_SHARING_V1S)

โดยทั่วไปผู้ให้บริการบริการร่วมเดินทางจะสำรวจบริการการเดินทางเพื่อดูสถานะของการเดินทางแต่ละครั้ง ทุกๆ 2-5 วินาทีในขณะที่ไรเดอร์ตรวจสอบความคืบหน้าของรถอยู่ การอัปเดตตำแหน่งของรถมักจะใช้เวลานานกว่าปกติ เช่น 10 วินาที คุณตรวจสอบฟิลด์ Trip.last_location.update_time ได้เพื่อดูว่ามีการอัปเดตใดๆ นับตั้งแต่การเรียก GetTrip ก่อนหน้านี้หรือไม่

จุดอ้างอิงสำหรับการเดินทาง

เอนทิตีการเดินทางมีช่องที่ซ้ำประเภท TripWaypoint (RPC | REST) ช่องนี้จะมีจุดอ้างอิงทั้งหมดที่ยานพาหนะจะต้องเดินทาง โดยเรียงตามลำดับก่อนจุดส่งสุดท้ายของการเดินทางนี้ การระบุมุมมองการแชร์เส้นทางจะบอกให้ Fleet Engine ใส่ข้อมูลที่อัปเดตใน allowed_waypoints[0] TripWaypoint ในมุมมองอื่นๆ ที่ไม่ใช่การแชร์เส้นทาง จุดอ้างอิงนั้นมักไม่ได้แสดงตำแหน่งล่าสุดของยานพาหนะที่กำหนดไว้

ต่อไปนี้คือตัวอย่างช่อง remaining_waypoints ของการเดินทาง A

[0] location.point = Trip.pickup_point.point
Tri_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = ละติจูด[] ละติจูดและลองจิจูดแรกจากเส้นทางที่เหลือไปยังการรับสินค้า
ละติจูดและลองจิจูดที่ 2 จากเส้นทางที่เหลือไปยังการรับสินค้า
...
ละติจูดและลองจิจูดสุดท้ายจากเส้นทางที่เหลือไปยังการรับสินค้า
จุดรับสินค้า [pickup_point] หากแตกต่างจากจุดสุดท้าย
traffic_data
ระยะทาง_meters = ระยะทางจากยานพาหนะปัจจุบัน_สถานที่ตั้งตามเส้นทาง path_to_waypoint ถึงจุดรับ
eta = เวลาถึงโดยประมาณที่อัปเดต
ระยะเวลา = ระยะเวลาที่อัปเดต
[1] location.point = Tri.dropoff_point.point
Tri_id = "trip_A"
Waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = ละติจูด[] ละติจูด/ลองจิจูดที่ 1 จากขาลง
ละติจูด/ลองจิจูดที่ 2 จากจุดส่งเที่ยวบิน
...
ละติจูดและลองจิจูดสุดท้ายจากจุดส่ง
Dropoff_point หากแตกต่างจากจุดสุดท้าย
traffic_data
ระยะทาง_meters = ระยะทางจากการรับสินค้าตามเส้นทาง path_to_waypoint ถึงจุดส่ง
eta = เวลาถึงโดยประมาณที่อัปเดต
ระยะเวลา = ระยะเวลาการย้ายออก

สำหรับการเดินทางแบบไปกลับ/ร่วมเดินทาง (การโดยสารรถร่วมกัน) รายการนี้อาจมีจุดอ้างอิงจากการเดินทางอื่นๆ ที่จะข้ามผ่านในระหว่างการเดินทางนี้ เช่น ลองพิจารณาสถานการณ์ที่มีการกำหนดการเดินทาง B ให้กับยานพาหนะเดียวกันกับการเดินทาง A ช่อง remaining_waypoints สำหรับการเดินทาง A จะมีค่าดังนี้ (ระบบละช่องส่วนใหญ่เพื่อความกระชับ แต่ระบบจะป้อนข้อมูลตามตัวอย่างก่อนหน้านี้)

[0] Tri_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[1] Tri_id = "trip_B"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[2] Tri_id = "trip_B"
Waypoint_type = DROP_OFF_WAYPOINT_TYPE
[3] Tri_id = "trip_A"
Waypoint_type = DROP_OFF_WAYPOINT_TYPE

ระบบจะป้อนข้อมูลในช่อง remaining_waypoint ของการเดินทาง B ในลักษณะเดียวกัน แต่จะแสดงเฉพาะ 3 รายการแรกเท่านั้น เนื่องจากจุดส่งของทริป A ไม่ได้อยู่ในเส้นทางของทริป B