Truy xuất dữ liệu chuyến đi trực tiếp từ công cụ thiết bị

SDK người tiêu dùng cung cấp chức năng chìa khoá trao tay cho ứng dụng đi chung xe để hiển thị vị trí và tiến trình của chiếc xe đưa họ trong hành trình.

Tuy nhiên, một số Nhà cung cấp dịch vụ đi chung xe muốn có nhiều quyền kiểm soát hơn đối với trải nghiệm khách hàng của người dùng cuối nhờ khả năng tích hợp linh hoạt, trong khi vẫn tận dụng được thông tin vị trí xe, giờ đến dự kiến và tuyến đường chính xác của Google theo thời gian thực. Hướng dẫn này chỉ cho bạn cách truy xuất dữ liệu chuyến đi trực tiếp từ Fleet Engine, như một giải pháp thay thế cho việc sử dụng SDK Người dùng.

Tổng quan

Để 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 chế độ xem JOURNEY_SHARED_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);

Đối tượng Chuyến đi thu được (RPC | REST) sẽ có các trường sau đây được điền sẵn thông tin mới nhất hiện có cho Chuyến đi:

  • 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_SHARE_V1S)

Nhà cung cấp dịch vụ đi chung xe thường thăm dò dịch vụ chuyến đi để biết trạng thái của mỗi chuyến đi từ 2 đến 5 giây một lần trong khi người lái xe đang chủ động theo dõi tiến trình của phương tiện. Thông tin cập nhật về vị trí của xe thường diễn ra trong một khoảng thời gian dài hơn, chẳng hạn như 10 giây. 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.

Điểm tham chiếu chuyến đi

Thực thể Trip chứa trường lặp lại thuộc loại TripWaypoint (RPC | REST). Trường này bao gồm tất cả các điểm tham chiếu mà xe sẽ cần di chuyển theo thứ tự trước điểm xuống cuối cùng của chuyến đi này. Việc chỉ định khung hiển thị Chia sẻ hành trình sẽ yêu cầu Fleet Engine đặt thông tin cập nhật trong còn lại_waypoints[0] TripWaypoint. Trong các chế độ xem không phải 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 xe được chỉ định.

Dưới đây là ví dụ về trường remaining_waypoints của Chuyến đi A:

[0] location.point = Trip.pickup_point.point
Trip_id = "trip_A"
điểm tham chiếu = PickUP_WAYPOINT_TYPE
path_to_waypoint = Vĩ độ dài[] Vĩ độ thứ 1 từ đường đi còn lại để đến lấy hàng
Vĩ độ thứ 2 từ đường dẫn còn lại đến điểm lấy hàng
...
LatLng cuối cùng từ đường dẫn còn lại đến đón
điểm lấy hàng (nếu khác với điểm lấy hàng trước đó)
traffic_data
quãng đường_mét = khoảng cách từ-xe_location hiện tại dọc theo path_to_waypoint đến điểm đến lấy hàng
eta = ETA đã cập nhật
thời lượng = thời lượng cập nhật
[1] location.point = chuyến đi.dropoff_point.point
Trip_id = "trip_A"
loại điểm tham chiếu = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = Vĩ độ dài[] Vĩ độ thứ 1 từ chặng bay
Vĩ độ thứ 2 từ chặng bay
...
Vĩ độ cuối cùng của chặng bay xuống
điểm bỏ qua, nếu khác với điểm cuối
traffic_data
Khoảng cách_mét = khoảng cách từ điểm nhận hàng dọc theo path_to_waypoint đến điểm trả xe
eta = ETA đã cập nhật
thời lượng = thời lượng giai đoạn bỏ ngang

Đối với các chuyến đi ngược chiều và chuyến đi chung (đi chung xe), danh sách này có thể chứa các điểm tham chiếu từ các chuyến đi khác sẽ đi trong 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 như Chuyến A. Sau đó, trường remaining_waypoints cho Chuyến đi A sẽ được điền như sau. (Hầu hết các trường đã bị bỏ qua để ngắn gọn nhưng sẽ được điền theo ví dụ trước.)

[0] Trip_id = "trip_A"
điểm tham chiếu = PickUP_WAYPOINT_TYPE
[1] Trip_id = "trip_B"
điểm tham chiếu = PickUP_WAYPOINT_TYPE
[2] Trip_id = "trip_B"
loại điểm tham chiếu = DROP_OFF_WAYPOINT_TYPE
[3] Trip_id = "trip_A"
loại điểm tham chiếu = DROP_OFF_WAYPOINT_TYPE

Trường remaining_waypoint của Chuyến đi B sẽ được điền tương tự, nhưng chỉ ba mục nhập đầu tiên xuất hiện, vì điểm xuống của Chuyến A không nằm trong tuyến đường của Chuyến B.