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

Z tego dokumentu dowiesz się, jak utworzyć podróż do jednego miejsca docelowego, ustawić prawidłowe pola i przypisać ją do pojazdu. Zakładamy, że masz skonfigurowaną usługę Fleet Engine, utworzone pojazdy, działającą aplikację kierowcy i opcjonalnie aplikację użytkownika. Więcej informacji znajdziesz w tych powiązanych przewodnikach:

Podstawy tworzenia podróży

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

  • Metoda CreateTrip(): gRPC lub REST
  • Wiadomość CreateTripRequest: gRPC tylko

Pola podróży

Aby utworzyć podróż w Fleet Engine, użyj tych pól. Możesz używać różnych pól w przypadku różnych rodzajów podróży: do jednego lub wielu miejsc docelowych, bezpośrednich lub wspólnych. Pola opcjonalne możesz 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. Ten identyfikator musi być taki sam w całej integracji z Fleet Engine i mieć te same role konta usługi.
trip_id Tak Ciąg tekstowy, który tworzysz i który jednoznacznie identyfikuje tę podróż. Identyfikatory podróży podlegają pewnym ograniczeniom, które są opisane w dokumentacji.
trip_type Tak W przypadku tworzonego typu podróży ustaw TripType na te wartości:
  • Podróż do jednego miejsca docelowego: ustaw na SHARED lub EXCLUSIVE.
  • Podróż do wielu miejsc docelowych: ustaw na EXCLUSIVE.
  • Podróż bezpośrednia: ustaw na EXCLUSIVE.
  • Podróż wspólna: ustaw na SHARED.
pickup_point Tak Miejsce rozpoczęcia podróży.
Intermediate destinations Tak

Tylko podróże do wielu miejsc docelowych: 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 ustawić później, wywołując UpdateTrip, ale podróż do wielu miejsc docelowych z definicji zawiera miejsca docelowe.

vehicle_waypoints Tak

Tylko podróże wspólne: to pole obsługuje przeplatanie punktów na trasie z wielu podróży. Zawiera wszystkie pozostałe punkty na trasie przypisanego pojazdu, a także punkty na trasie odbioru i wysadzenia w tej podróży. To pole możesz ustawić wywołując CreateTrip lub UpdateTrip. Punkty na trasie pojazdu możesz też zaktualizować za pomocą pola 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 w podróży.
dropoff_point Nie Miejsce docelowe podróży.
vehicle_id Nie Identyfikator pojazdu przypisanego do podróży.

Przykład: podróż do jednego miejsca docelowego

Poniższy przykład pokazuje, jak utworzyć podróż do centrum handlowego Grand Indonesia East Mall. Podróż obejmuje 2 pasażerów, jest ekskluzywna, a jej stan to NEW. Wartość provider_id podróży musi być taka sama jak identyfikator projektu Google Cloud. W przykładach pokazujemy projekt Google Cloud o identyfikatorze projektu my-rideshare-co-gcp-project. Ten projekt musi też zawierać konto usługi, aby można było wywoływać Fleet Engine. Więcej informacji znajdziesz w artykule Role 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?