Tài liệu này mô tả cách tạo một chuyến đi liên tiếp, đặt các trường chính xác và chỉ định chuyến đi đó cho một chiếc xe để thực hiện. Tài liệu này giả định rằng bạn đã thiết lập Fleet Engine, đã tạo xe, có một ứng dụng tài xế đang hoạt động và không bắt buộc phải có ứng dụng người tiêu dùng. Bạn cũng nên làm quen với 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:
- Thiết lập Fleet Engine
- Tạo xe
- Các tình huống chuyến đi trong phần tổng quan về Chuyến đi theo yêu cầu
Thông tin cơ bản về việc 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 một chuyến đi trong Fleet Engine. Bạn đưa ra yêu cầu tạo bằng cách sử dụng gRPC và REST.
Trường chuyến đi
Sử dụng các trường sau đây để tạo một chuyến đi trong Fleet Engine. 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, liên tiếp hoặc đi chung xe. 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 bao gồm mã dự án. Mã này phải giống với mã được sử dụng trên toàn bộ quá trình tích hợp Fleet Engine, có 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 duy nhất chuyến đi này. Mã chuyến đi có một số hạn chế, như được chỉ ra 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. |
| Điểm đến trung gian | Có | Chỉ chuyến đi có nhiều điểm đến: Danh sách các điểm đến trung gian mà tài xế ghé thăm giữa
điểm đón và điểm trả khách. Tương tự như |
| vehicle_waypoints | Có | Chỉ chuyến đi đi chung xe: Trường này hỗ trợ xen kẽ các điểm tham chiếu từ nhiều chuyến đi.
Trường này chứa tất cả các điểm tham chiếu còn lại cho xe được chỉ định, cũng như các điểm tham chiếu đó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 trong 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 một chuyến đi liên tiếp
Ví dụ 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 chiếc xe. Trong tình huống này, việc tạo chuyến đi cũng giống như đối với chuyến đi có một điểm đến. Bạn chỉ tạo một chuyến đi khác và chỉ định chuyến đi đó cho một chiếc xe có chuyến đi đã 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 bạn chỉ định một chiếc xe cho một chuyến đi liên tiếp, bạn sẽ chỉ định một chuyến đi cho một chiếc xe ngay cả khi chiếc xe đó đã được chỉ định một chuyến đi.
Mọi chuyến đi được tạo trong Fleet Engine đều phải được chỉ định cho một chiếc xe để Fleet Engine có thể tính toán thời gian đến dự kiến (ETA) của chuyến đi và theo dõi 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 đó khi cập nhật chuyến đi.
Sau khi bạn chỉ định chuyến đi cho một chiếc xe, Fleet Engine sẽ tự động thêm các điểm tham chiếu liên kết với các chuyến đi liên tiếp vào trường điểm tham chiếu của xe. Trường remainingWaypoints của một chuyến đi chứa danh sách tất cả các điểm tham chiếu, bao gồm cả các điểm tham chiếu từ các chuyến đi khác sẽ được ghé thăm trước khi trả khách của chuyến đi.
Ví dụ: hãy xem xét 2 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 đang trên đường đến địa đ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ềremainingWaypointschứa:
Điểm trả khách A → Điểm đón B → Điểm trả khách B. - Việc gọi
getTrip()hoặc lệnh gọi lạionTripRemainingWaypointsUpdatedcho Chuyến đi A sẽ trả vềremainingWaypointschứa:
Điểm trả khách. - Việc gọi
getTrip()hoặc lệnh gọi lạionTripRemainingWaypointsUpdatedcho Chuyến đi B sẽ trả vềremainingWaypointschứa:
Điểm trả khách A → Điểm đón B → và Điểm trả khách B.