Truy xuất dữ liệu chuyến đi trực tiếp từ Fleet Engine

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ừ Công cụ quản lý đội xe, thay vì sử dụng SDK dành cho người dùng. 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 người dùng cuối mà vẫn tận dụng được thông tin vị trí xe chính xác và theo thời gian thực của Fleet Engine, giờ đến dự kiến cũng như tuyến đường.

Để biết thông tin chi tiết về cách sử dụng SDK dành cho người dùng, 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 trực tiếp thông tin chuyến đi từ Fleet Engine, hãy gọi phương thức GetTrip, chỉ định khung hiển thị JOURNEY_SHARING_V1S. Hãy xem tài liệu 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 mỗi chuyến đi trong khi người lái xe đang chủ động theo dõi tiến trình của xe. Quá trình cập nhật vị trí cho xe thường diễn ra 10 giây một lần và hệ thống sẽ thăm dò ý kiến ở cùng tốc độ đó. Bạn có thể theo dõi trường Trip.last_location.update_time để xem có bản 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 có các trường sau đây được điền sẵn thông tin mới nhất cho 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 chuyến đi còn lạ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 trung gian mà xe sẽ cần đi qua, theo thứ tự, trước khi đến đ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 Công cụ quản lý đội xe đặt thông tin cập nhật trong remaining_waypoints[0] TripWaypoint. Trong các chế độ xem khác không phải là Chia sẻ hành trình, điểm trung gian đó thường không phản ánh vị trí mới nhất của 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 trung gian 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:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = Vĩ độ Vĩ độ[] Vĩ độ thứ nhất từ đoạn đường còn lại đến điểm đến lấy hàng
LatLng thứ 2 từ đường dẫn còn lại đến điểm đến lấy hàng
...
Vĩ độ đến lấy hàng cuối cùng trong lộ trình còn lại
điểm nhận hàng, nếu khác với điểm trước đây
traffic_data
distance_meters = khoảng cách từ vehicle_location hiện tại dọc theo path_to_waypoint đến điểm đến
eta = updated ETA
duration = updated duration
[1] location.point = Trip.dropoff_point.point
Trip_id = "trip_A"
tham chiếu_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = Vĩ độ Vĩ độ[] Vĩ độ thứ nhất từ chặng trả xe
Vĩ độ thứ 2 từ chặng trả khách
...
LatLng cuối cùng từ chặng trả hàng
Dropoff_point, nếu khác với giá trị gần đây nhất
traffic_data
khoảng cách_mét = khoảng cách từ điểm đến lấy hàng dọc theo path_to_waypoint đến điểm trả khách
eta = thời gian đến dự kiến đã cập nhật
duration = thời lượng chặng trả khách

Đối với các chuyến đi khứ hồi và chuyến đi gộp chung, danh sách này có thể chứa các điểm tham chiếu của các chuyến đi khác sẽ được di chuyển trước hành trình 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 như sau. Để ngắn gọn, hầu hết các trường đều bị bỏ qua, nhưng các trường này sẽ được điền theo ví dụ trước.

[0] Trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
[1] Trip_id = "trip_B"
điểm tham chiếu = PICKUP_WAYPOINT_TYPE
[2] trip_id = "trip_B"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
[3] Trip_id = "trip_A"
tham chiếu_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ó ba mục nhập đầu tiên xuất hiện, vì điểm trả của Chuyến đi A không phải là một phần trong tuyến đường của Chuyến đi B.