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 của người dùng cuối, đồng thời vẫn tận dụng thông tin vị trí, thời gian đến dự kiến và tuyến đường chính xác và theo thời gian thực của Công cụ quản lý đội xe.

Để 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ừ Công cụ quản lý đội xe, hãy gọi phương thức GetTrip, chỉ định thành phần hiển thị JOURNEY_SHARING_V1S. Xem tài liệu tham khảo về RPC hoặc REST.

Máy chủ của bạn thường thăm dò ý kiến dịch vụ chuyến đi về trạng thái của từng chuyến đi trong khi người đi xe đang chủ động theo dõi tiến trình của xe. Thông tin cập nhật vị trí của xe thường diễn ra 10 giây một lần và hệ thống của bạn 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 sẽ có các trường sau được điền sẵn thông tin mới nhất có sẵn 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 trung gian 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 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à tính năng 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 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 trung gian 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:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] LatLng đầu tiên từ đường dẫn 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
...
LatLng cuối cùng từ đường dẫn còn lại đến điểm đến lấy hàng
điểm_nhận, nếu khác với lần trước
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 = ETA đã cập nhật
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 đầu tiên từ chặng trả khách
LatLng thứ 2 từ chặng trả khách
...
LatLng cuối cùng của chặng trả khách
dropoff_point, nếu khác với lần trước
traffic_data
distance_meters = khoảng cách từ điểm đón dọc theo path_to_waypoint đến điểm trả khách
eta = ETA đã cập nhật
duration = thời lượng chặng trả xe

Với các chuyến đi liên tiếp và chuyến đi chung, danh sách này có thể chứa các điểm trung gian từ các chuyến đi khác cần đi qua trước khi thực hiện 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"
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 xuất hiện vì điểm trả khách của chuyến đi A không thuộc tuyến đường của chuyến đi B.