Tworzenie podróży w jedną stronę docelową

Ten dokument opisuje, jak utworzyć przejazd z jednym miejscem docelowym, ustawić odpowiednie pola i przypisać go do pojazdu. Zakładamy, że masz skonfigurowany Fleet Engine i utworzone pojazdy oraz działającą aplikację dla kierowców i opcjonalnie aplikację użytkownika. Zapoznaj się z tymi powiązanymi przewodnikami:

Podstawowe informacje o tworzeniu podróży

W tej sekcji opisano szczegóły żądania niezbędne do utworzenia przejazdu w Fleet Engine. Wysyłasz żądanie utworzenia za pomocą gRPC i REST.

  • Metoda CreateTrip(): gRPC lub REST
  • Komunikat CreateTripRequest: tylko gRPC

Pola dotyczące przejazdu

Aby utworzyć przejazd w Fleet Engine, użyj tych pól. Możesz używać różnych pól w przypadku różnych rodzajów przejazdów: z jednym lub wieloma miejscami docelowymi, przejazdów łączonych lub przejazdów współdzielonych. Możesz podać pola opcjonalne podczas tworzenia przejazdu lub ustawić je później, gdy będziesz go aktualizować.

Pola dotyczące przejazdu
Nazwa Wymagany? Opis
parent Tak Ciąg tekstowy zawierający identyfikator projektu. Ten identyfikator musi być taki sam jak identyfikator używany w całej integracji Fleet Engine i mieć te same role konta usługi.
trip_id Tak Utworzony przez Ciebie ciąg znaków, który jednoznacznie identyfikuje dany przejazd. Identyfikatory przejazdów podlegają pewnym ograniczeniom, które są opisane w dokumentacji.
trip_type Tak Ustaw TripType na te wartości dla typu przejazdu, który tworzysz:
  • Pojedyncze miejsce docelowe: ustaw na SHARED lub EXCLUSIVE.
  • Multi-destination (Wiele miejsc docelowych): ustaw wartość EXCLUSIVE.
  • Back-to-back (Jedna po drugiej): ustaw na EXCLUSIVE.
  • Wspólne miejsce na dane: ustawiono na SHARED.
pickup_point Tak Punkt początkowy przejazdu.
Miejsca pośrednie Tak

Tylko przejazdy z wieloma miejscami docelowymi: lista miejsc docelowych, które kierowca odwiedza między odbiorem a wysiadaniem. Podobnie jak w przypadku dropoff_point, to pole można też ustawić później, wywołując UpdateTrip, ale przejazd z wieloma miejscami docelowymi z definicji zawiera miejsca docelowe.

vehicle_waypoints Tak

Tylko przejazdy współdzielone: to pole obsługuje przeplatanie punktów pośrednich z wielu przejazdów. Zawiera wszystkie pozostałe punkty pośrednie przypisanego pojazdu, a także punkty odbioru i wysiadki dla tego przejazdu. Możesz ustawić to pole, wywołując CreateTrip lub UpdateTrip. Możesz też zaktualizować punkty pośrednie pojazdu w polu waypoints, wywołując UpdateVehicle. Ze względu na ochronę prywatności usługa nie zwraca tych informacji w przypadku wywołań GetTrip.

number_of_passengers Nie Liczba pasażerów podczas przejazdu.
dropoff_point Nie Miejsce docelowe podróży.
vehicle_id Nie Identyfikator pojazdu przypisanego do przejazdu.

Przykład: podróż do jednego miejsca docelowego

Poniższy przykład pokazuje, jak utworzyć przejazd do centrum handlowego Grand Indonesia East Mall. Przejazd obejmuje 2 pasażerów, jest wyłączny, a jego stan to NEW. provider_id przejazdu musi być taki sam jak identyfikator projektu Google Cloud. Przykłady pokazują projekt Google Cloud o identyfikatorze my-rideshare-co-gcp-project. Ten projekt musi też zawierać konto usługi, aby można było wywołać Fleet Engine. Więcej informacji znajdziesz w opisie ról konta usługi.

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;
}

Co dalej?