Tài liệu này mô tả cách tạo chuyến đi liên tiếp, thiết lập các trường chính xác và chỉ định chuyến đi đó cho một xe để thực hiện. Giả sử bạn đã thiết lập Công cụ của đội xe, đã tạo xe, có ứng dụng dành cho người lái xe đang hoạt động và có thể có ứng dụng dành cho người dùng. Bạn cũng phải nắm rõ các tình huống chuyến đi khác nhau có sẵn cho các chuyến đi theo yêu cầu. Hãy xem các hướng dẫn liên quan sau đây để biết thêm thông tin:
- Thiết lập Công cụ của đội xe
- Tạo xe
- Tình huống chuyến đi trong phần tổng quan về Chuyến đi theo yêu cầu
Kiến thức cơ bản về cách tạo chuyến đi
Phần này mô tả thông tin chi tiết về yêu cầu cần thiết để tạo chuyến đi trong Công cụ quản lý đội xe. Bạn đưa ra yêu cầu tạo bằng gRPC và REST.
Trường chuyến đi
Sử dụng các trường sau để tạo một chuyến đi trong Công cụ quản lý đội xe. Bạn có thể sử dụng các trường khác nhau cho các loại chuyến đi: một hoặc nhiều điểm đến, chuyến đi liên tiếp hoặc chuyến đi chung. Bạn có thể cung cấp các trường không bắt buộc khi tạo chuyến đi hoặc bạn có thể đặt các trường này sau khi cập nhật chuyến đi.
Tên | Bắt buộc? | Mô tả |
---|---|---|
parent | Có | Một chuỗi ký tự chứa mã dự án. Mã này phải giống với mã được sử dụng trong toàn bộ quá trình tích hợp Fleet Engine, với cùng vai trò tài khoản dịch vụ. |
trip_id | Có | Một chuỗi mà bạn tạo để xác định riêng chuyến đi này. Mã chuyến đi có một số hạn chế nhất định, như được chỉ định trong tài liệu tham khảo. |
trip_type | Có | Đặt TripType thành các giá trị sau cho loại chuyến đi mà bạn đang tạo:
|
pickup_point | Có | Điểm xuất phát của chuyến đi. |
Đích đến trung gian | Có | Chỉ dành cho chuyến đi nhiều điểm đến: Danh sách các điểm đến trung gian mà tài xế ghé thăm trong khoảng thời gian từ khi đón đến khi trả khách. Giống như |
vehicle_waypoints | Có | Chỉ dành cho các chuyến đi chung: Trường này hỗ trợ xen kẽ các điểm trung gian của nhiều chuyến đi.
Tệp này chứa tất cả các điểm trung gian còn lại cho xe được chỉ định, cũng như điểm trung gian đón và trả khách cho chuyến đi này. Bạn có thể đặt trường này bằng cách gọi |
number_of_passengers | Không | Số lượng hành khách trên chuyến đi. |
dropoff_point | Không | Điểm đến của chuyến đi. |
vehicle_id | Không | Mã của xe được chỉ định cho chuyến đi. |
Ví dụ: tạo chuyến đi liên tiếp
Phần sau đây minh hoạ cách tạo một chuyến đi liên tiếp và chỉ định chuyến đi đó cho một xe. Trong trường hợp này, việc tạo chuyến đi cũng giống như đối với chuyến đi một điểm đến. Sau đó, bạn mới tạo một chuyến đi khác và chỉ định chuyến đi đó cho một xe có chuyến đi đang hoạt động.
// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE)
.setPickupPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.setVehicleId(VEHICLE_ID)
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId(TRIP_ID)
.setTrip(trip)
.build();
// Error handling.
try {
// Fleet Engine automatically assigns a 'waypoints' list to the trip containing
// the vehicle's current trip waypoints.
Trip createdTrip =
tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
Cập nhật các chuyến đi liên tiếp
Khi chỉ định xe cho một chuyến đi liên tiếp, bạn sẽ chỉ định một chuyến đi cho một xe ngay cả khi xe đó đã được chỉ định.
Mọi chuyến đi được tạo trong Công cụ quản lý đội xe đều phải được chỉ định cho một xe để Công cụ quản lý đội xe có thể tính toán và theo dõi ETA của chuyến đi. Bạn có thể thực hiện việc này trong quá trình tạo chuyến đi hoặc sau này khi cập nhật chuyến đi.
Sau khi bạn chỉ định chuyến đi cho một xe, Công cụ quản lý đội xe sẽ tự động thêm các điểm trung gian liên kết với các chuyến đi liên tiếp vào trường điểm trung gian của xe. Trường remainingWaypoints
của chuyến đi chứa danh sách tất cả các điểm trung gian, bao gồm cả các điểm trung gian của các chuyến đi khác sẽ được ghé thăm trước khi kết thúc chuyến đi.
Ví dụ: hãy xem xét hai chuyến đi liên tiếp: Chuyến đi A và Chuyến đi B. Xe đã đón người tiêu dùng cho Chuyến đi A và trong khi trên đường đến điểm trả khách, tài xế nhận được yêu cầu đón một người tiêu dùng khác cho chuyến đi tiếp theo, Chuyến đi B.
- Việc gọi
getVehicle()
sẽ trả vềremainingWaypoints
chứa:
A Điểm trả hàng → B Điểm lấy hàng → B Điểm trả hàng. getTrip()
hoặc lệnh gọi lạionTripRemainingWaypointsUpdated
cho Chuyến đi A sẽ trả vềremainingWaypoints
chứa:
Một điểm trả khách.getTrip()
hoặc lệnh gọi lạionTripRemainingWaypointsUpdated
cho Chuyến đi B sẽ trả vềremainingWaypoints
chứa:
A Drop-off → B Pickup → và B Drop-off.