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

Z tego dokumentu dowiesz się, jak utworzyć pojedynczą podróż docelową, ustawić odpowiednie pola i przypisać ją do pojazdu, który chcesz zrealizować. Zakładamy, że masz skonfigurowaną usługę Fleet Engine, utworzoną przez Ciebie pojazdy, działającą aplikację kierowcy oraz (opcjonalnie) aplikację dla użytkowników indywidualnych. W tym celu zapoznaj się z tymi powiązanymi przewodnikami:

Podstawowe informacje o tworzeniu podróży

Ta sekcja opisuje szczegóły żądania niezbędne do utworzenia podróży we Fleet Engine. Wysyłasz żądanie utworzenia za pomocą gRPC lub REST.

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

Pola podróży

Aby utworzyć przejazd w Fleet Engine, użyj tych pól. W przypadku różnych rodzajów podróży możesz użyć różnych pól: jednego lub wielu miejsc docelowych, podróży powrotnych lub wspólnych podróży. Pola opcjonalne można podać podczas tworzenia podróży lub ustawić je później podczas aktualizowania podróży.

Pola podróży
Nazwa Wymagany? Opis
parent Tak Ciąg tekstowy zawierający identyfikator projektu. Identyfikator musi być taki sam we wszystkich integracjach z Fleet Engine, z tymi samymi rolami konta usługi.
trip_id Tak Utworzony przez Ciebie ciąg znaków jednoznacznie identyfikujący tę podróż. Identyfikatory podróży podlegają pewnym ograniczeniom, które podano w pliku referencyjnym.
trip_type Tak W polu TripType ustaw te wartości dla tworzonego typu podróży:
  • Pojedyncze miejsce docelowe: ustaw SHARED lub EXCLUSIVE.
  • Wiele miejsc docelowych: ustaw wartość EXCLUSIVE.
  • Do tyłu: ustaw EXCLUSIVE.
  • Udostępnianie zasobów: ustaw na SHARED.
pickup_point Tak Punkt początkowy podróży.
Średnie miejsca docelowe Tak

Tylko podróże do wielu miejsc docelowych: lista pośrednich miejsc docelowych, które kierowca odwiedza pomiędzy odbiorem a wyjazdem do miejsca docelowego. Tak jak w przypadku dropoff_point, to pole można ustawić później, wywołując UpdateTrip. W przypadku podróży do wielu miejsc docelowych z definicji znajdują się miejsca docelowe pośrednie.

vehicle_waypoints Tak

Tylko podróże w ramach wspólnego puli: to pole obsługuje przeplatanie punktów pośrednich z wielu przejazdów. Zawiera wszystkie pozostałe punkty pośrednie dla przypisanego pojazdu, a także punkty odbioru i zwrotu w ramach tej podróży. Aby ustawić to pole, wywołaj CreateTrip lub UpdateTrip. Możesz też aktualizować 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 wywołaniach funkcji GetTrip.

number_of_passengers Nie Liczba pasażerów w podróży.
dropoff_point Nie Cel podróży.
vehicle_id Nie Identyfikator pojazdu przypisanego do podróży.

Przykład: podróż z jednym celem

W tym przykładzie pokazujemy, jak utworzyć podróż do Grand Indonesia East Mall. Podróż obejmuje 2 pasażerów, jest na wyłączność i ma stanNEW. provider_id podróży musi być taki sam jak identyfikator projektu Google Cloud. Przykłady przedstawiają projekt Google Cloud o identyfikatorze my-rideshare-co-gcp-project. Aby można było wywoływać Fleet Engine, ten projekt musi też zawierać konto usługi. Więcej informacji znajdziesz w artykule Role na koncie 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?