Tạo chuyến đi một điểm đến

Tài liệu này mô tả cách tạo một chuyến đi đến một đích đến, đặt đúng các trường và chỉ định chuyến đi đó cho một xe để thực hiện. Bài viết này giả định rằng bạn đã thiết lập Công cụ của đội xe và đã tạo xe, có ứng dụng trình điều khiển đang hoạt động và có thể có ứng dụng dành cho người dùng. Hãy xem các hướng dẫn liên quan sau đây:

Thông tin 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 một chuyến đi trong Fleet Engine. Bạn đưa ra yêu cầu tạo bằng gRPC và REST.

  • Phương thức CreateTrip(): gRPC hoặc REST
  • CreateTripRequest thông báo: chỉ dành cho gRPC

Trường chuyến đi

Sử dụng các trường sau để 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 khác nhau: chuyến đi một hoặc nhiều điểm đến, chuyến đi quay lại hoặc chuyến đi gộp 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.

Trường chuyến đi
Tên Bắt buộc? Mô tả
cha mẹ Một chuỗi ký tự chứa mã dự án. Mã này phải giống với mã được dùng trong toàn bộ quá trình tích hợp Fleet Engine, với các vai trò trong tài khoản dịch vụ giống nhau.
trip_id Một chuỗi bạn tạo để nhận dạng duy nhất chuyến đi này. Mã chuyến đi có một số quy định hạn chế nhất định, như được nêu trong tệp tham chiếu.
trip_type Đặt TripType thành các giá trị sau cho loại chuyến đi mà bạn đang tạo:
  • Đích đến đơn: Đặt thành SHARED hoặc EXCLUSIVE.
  • Nhiều điểm đến: Đặt thành EXCLUSIVE.
  • Lượt quay liên tiếp: Đặt thành EXCLUSIVE.
  • Gộp chung: Đặt thành SHARED.
pickup_point Điểm xuất phát của chuyến đi.
Đích đến trung gian

Chỉ dành cho các chuyến đi nhiều điểm đến: Danh sách các điểm đến trung gian mà người lái xe ghé thăm giữa các điểm đến lấy hàng và trả xe. Giống như dropoff_point, bạn cũng có thể thiết lập trường này sau bằng cách gọi UpdateTrip. Tuy nhiên, theo định nghĩa, mỗi chuyến đi nhiều điểm đến sẽ chứa các điểm đến trung gian.

vehicle_waypoints

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 tham chiếu còn lại của xe được chỉ định, cũng như điểm đó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 CreateTrip hoặc UpdateTrip. Bạn cũng có thể cập nhật điểm trung gian của xe thông qua trường waypoints bằng lệnh gọi đến UpdateVehicle. Vì lý do liên quan đến quyền riêng tư, dịch vụ không trả về thông tin này trong các lệnh gọi GetTrip.

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ụ: chuyến đi một điểm đến

Ví dụ sau minh hoạ cách tạo một chuyến đi đến Grand Indonesia East Mall. Chuyến đi này có hai hành khách, là chuyến đi riêng và trạng thái là NEW. provider_id của chuyến đi phải giống với mã dự án trên Google Cloud. Các ví dụ minh hoạ một dự án trên Google Cloud có mã dự án my-rideshare-co-gcp-project. Dự án này cũng phải có một tài khoản dịch vụ để gọi Fleet Engine. Hãy xem phần Vai trò của tài khoản dịch vụ để biết thông tin chi tiết.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

// Trip initial settings.
String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
    .setPickupPoint(                 // Grand Indonesia East Mall.
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setNumberOfPassengers(2)
    // Provide the drop-off point if available.
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId("trip-8241890")  // Trip ID assigned by the provider.
    .setTrip(trip)              // The initial state is NEW.
    .build();

// Error handling.
try {
  Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

Bước tiếp theo