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

Z tego dokumentu dowiesz się, jak utworzyć przejazd do jednego miejsca docelowego, ustawić odpowiednie pola i przypisać go do pojazdu. Zakładamy, że masz już skonfigurowaną usługę Fleet Engine, utworzone pojazdy i działającą aplikację dla kierowców oraz opcjonalnie aplikację użytkownika. Więcej informacji znajdziesz w tych przewodnikach:

Podstawowe informacje o tworzeniu wycieczek

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

  • Metoda CreateTrip(): gRPC lub REST
  • CreateTripRequest message: gRPC only

Pola przejazdu

Aby utworzyć przejazd w Fleet Engine, użyj tych pól. W przypadku różnych rodzajów przejazdów możesz używać różnych pól: przejazdów do jednego lub wielu miejsc docelowych, przejazdów bezpośrednich lub przejazdów wspólnych. Pola opcjonalne możesz podać podczas tworzenia podróży lub ustawić je później, gdy będziesz aktualizować podróż.

Pola 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 z Fleet Engine, z tymi samymi rolami konta usługi.
trip_id Tak Utworzony przez Ciebie ciąg znaków, który w niepowtarzalny sposób identyfikuje tę podróż. Identyfikatory przejazdów podlegają pewnym ograniczeniom, o których mowa w dokumentacji.
trip_type Tak Ustaw wartość TripType na jedną z tych wartości w przypadku tworzonego typu podróży:
  • Pojedyncze miejsce docelowe: ustaw na SHARED lub EXCLUSIVE.
  • Wiele miejsc docelowych: ustaw na EXCLUSIVE.
  • Jeden po drugim: ustaw na EXCLUSIVE.
  • Pula współdzielona: ustaw na SHARED.
pickup_point Tak Punkt początkowy podróży.
Miejsca docelowe pośrednie Tak

Tylko przejazdy z wieloma miejscami docelowymi: lista miejsc docelowych, do których kierowca jedzie między miejscem odbioru a miejscem docelowym. 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 na trasie przypisanego pojazdu, a także punkty odbioru i wysiadki w przypadku tej podróży. Możesz ustawić to pole, dzwoniąc pod numer CreateTrip lub UpdateTrip. Możesz też zaktualizować punkty pośrednie pojazdu za pomocą pola waypoints, wywołując funkcję UpdateVehicle. Ze względu na ochronę prywatności usługa nie zwraca tych informacji w przypadku połączeń GetTrip.

number_of_passengers Nie Liczba pasażerów w przejeździe.
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ć wycieczkę do centrum handlowego Grand Indonesia East Mall. Przejazd obejmuje 2 pasażerów, jest ekskluzywny, a jego stan to NEW. Wartość provider_id przejazdu musi być taka sama jak identyfikator projektu Google Cloud. W przykładzie pokazano projekt Google Cloud o identyfikatorze projektu my-rideshare-co-gcp-project. Aby wywoływać Fleet Engine, ten projekt musi też zawierać konto usługi. Więcej informacji znajdziesz w opisie ról kont 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?