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 tốt hơn trải nghiệm của người dùng cuối, đồng thời vẫn tận dụng được thông tin chính xác và theo thời gian thực của Fleet Engine về vị trí, thời gian đến dự kiến và tuyến đường của xe.
Để biết thông tin chi tiết về cách sử dụng Consumer SDK, hãy xem bài viết 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 chế độ xem JOURNEY_SHARING_V1S. Xem tài liệu tham khảo cho RPC hoặc REST.
Thông thường, máy chủ của bạn 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 tin cập nhật về vị trí của xe thường được gửi sau mỗi 10 giây và hệ thống của bạn nên thăm dò theo cùng tần suất đó. Bạn có thể theo dõi trường Trip.last_location.update_time để xem có thông tin cập nhật nào kể từ lần 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 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 sẽ yêu cầu Fleet Engine đưa thông tin mới nhất vào remaining_waypoints[0] TripWaypoint. Trong các chế độ xem khác không phải chế độ Chia sẻ hành trình, điểm tham chiếu đó thường không phản ánh vị trí mới nhất của chiếc xe được chỉ định. Xem tài liệu tham khảo cho 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.
Dưới đâ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 đã được bỏ qua để ngắn gọn, nhưng chúng sẽ được điền sẵ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 cũng 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.