Hướng dẫn này cho bạn biết cách truy xuất dữ liệu chuyến đi trực tiếp từ Fleet Engine, thay vì sử dụng Consumer SDK. Bạn có thể sử dụng phương pháp này để kiểm soát chặt chẽ hơn trải nghiệm của người dùng cuối trong khi vẫn tận dụng được vị trí, thời gian dự kiến đến và thông tin định tuyến chính xác theo thời gian thực của Fleet Engine.
Để biết thông tin chi tiết về cách sử dụng Consumer SDK, hãy xem phần Chia sẻ hành trình cho các chuyến đi theo yêu cầu.
Truy xuất thông tin chuyến đi
Để truy xuất thông tin chuyến đi trực tiếp từ Fleet Engine, hãy gọi phương thức GetTrip, chỉ định khung hiển thị JOURNEY_SHARING_V1S. Xem thông tin tham khảo về RPC hoặc REST.
Máy chủ của bạn thường sẽ thăm dò dịch vụ chuyến đi để biết trạng thái của từng chuyến đi trong khi người lái xe đang tích cực theo dõi tiến trình của xe. Thông thường, hệ thống sẽ cập nhật vị trí của xe sau mỗi 10 giây và hệ thống của bạn cũng nên thăm dò với tốc độ tương tự. Bạn có thể theo dõi trường Trip.last_location.update_time để xem có nội dung cập nhật nào kể từ lệnh gọi trước đó đến GetTrip hay không.
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);
Đối tượng Trip thu được sẽ có các trường sau được điền sẵn thông tin mới nhất hiện có về chuyến đi:
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 |
|
Truy xuất các điểm tham chiếu còn lại của chuyến đi
Thực thể Chuyến đi chứa một trường lặp lại thuộc loại TripWaypoint Trường này bao gồm tất cả các điểm tham chiếu mà xe cần di chuyển theo thứ tự trước điểm trả khách cuối cùng của chuyến đi này. Việc chỉ định chế độ xem Chia sẻ hành trình cho Fleet Engine biết đặt thông tin cập nhật vào remaining_waypoints[0] TripWaypoint. Trong các chế độ xem khác không phải chế độ xem Chia sẻ hành trình, điểm đánh dấu đó thường không phản ánh vị trí mới nhất của chiếc xe được chỉ định. Hãy xem tài liệu tham khảo về RPC hoặc REST.
Để biết thêm thông tin, hãy xem phần Trạng thái chuyến đi và các điểm tham chiếu còn lại của xe trong hướng dẫn Giới thiệu về chuyến đi.
Sau đây là ví dụ về trường remaining_waypoints cho một chuyến đi, Chuyến đi A:
| |||||||||||||||||||||
| |||||||||||||||||||||
Với các chuyến đi ghép xe liên tiếp và dùng chung, danh sách này có thể chứa các điểm tham chiếu của những chuyến đi khác cần đi qua trước chuyến đi này. Ví dụ: hãy xem xét trường hợp Chuyến đi B được chỉ định cho cùng một xe với Chuyến đi A. Sau đó, trường remaining_waypoints cho Chuyến đi A sẽ được điền sẵn như sau.
Hầu hết các trường đã bị bỏ qua để cho ngắn gọn, nhưng chúng sẽ được điền nhất quán với ví dụ trước.
| [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 |
Trường remaining_waypoint của Chuyến đi B sẽ được điền tương tự, nhưng chỉ có 3 mục đầu tiên vì điểm trả khách của Chuyến đi A không nằm trong tuyến đường của Chuyến đi B.