W tym dokumencie opisujemy, jak utworzyć podróż w obie strony, ustawić poprawną i przypisać je do pojazdu, który ma je wypełnić. Zakładamy, że masz skonfigurowany Fleet Engine, utworzyłeś pojazdy, masz działającą aplikację dla kierowcy i opcjonalnie aplikację dla klienta. Powinieneś też znać różne scenariusze przejazdów dostępne w przypadku przejazdów na żądanie. Zobacz te powiązane przewodniki dotyczące które:
- Skonfiguruj Fleet Engine
- Tworzenie pojazdu
- Scenariusz podróży w omówieniu Podróży na żądanie.
Podstawowe informacje o tworzeniu podróży
W tej sekcji opisano szczegóły żądania potrzebne do utworzenia przejazdu w Fleet Engine. Wysyłasz żądanie utworzenia za pomocą gRPC lub REST.
.Pola dotyczące podróży
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 z jednym lub wieloma miejscami docelowymi, przejazdów z powrotem lub przejazdów współdzielonych. Pola opcjonalne możesz podać podczas tworzenia podróży lub ustawić je później podczas jej aktualizowania.
Nazwa | Wymagany? | Opis |
---|---|---|
parent | Tak | Ciąg tekstowy zawierający identyfikator projektu. Ten identyfikator musi być taki sam, jak używany w całej integracji Fleet Engine z tym samym kontem usługi role. |
trip_id | Tak | Tworzony przez Ciebie ciąg znaków, który jednoznacznie identyfikuje tę podróż. Identyfikatory podróży zawierają pewnych ograniczeń, które określono w pliku referencyjnym. |
trip_type | Tak | W polu TripType ustaw następujące wartości dla tworzonego typu podróży:
|
pickup_point | Tak | Punkt początkowy podróży. |
Miejsca docelowe pośrednie | Tak | Tylko podróże do wielu miejsc docelowych: lista pośrednich miejsc docelowych, które kierowca odwiedza pomiędzy tymi miejscami.
odbiór i zwrot. Tak jak |
vehicle_waypoints | Tak | Tylko w przypadku przejazdów współdzielonych: to pole obsługuje przeplatanie punktów pośrednich z różnych przejazdów.
Zawiera wszystkie pozostałe punkty na trasie przypisanego pojazdu, a także
jako punkty na trasie wyjazdu i przyjazdu. To pole możesz ustawić, wywołując funkcję |
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: utworzenie przejazdu w obie strony
Poniżej pokazujemy, jak utworzyć podróż w obie strony i przypisać ją do pojazdu. W tym scenariuszu tworzenie podróży przebiega tak samo jak w przypadku podróży do jednego miejsca docelowego. Dopiero później tworzysz kolejną podróż i przypisujesz ją do pojazdu z już aktywną podróżą.
// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE)
.setPickupPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.setVehicleId(VEHICLE_ID)
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId(TRIP_ID)
.setTrip(trip)
.build();
// Error handling.
try {
// Fleet Engine automatically assigns a 'waypoints' list to the trip containing
// the vehicle's current trip waypoints.
Trip createdTrip =
tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
Zaktualizuj kolejne podróże
Gdy przypisujesz pojazd do podróży w tle, przypisujesz podróż do pojazdu, nawet jeśli został już przypisany.
Podróż utworzona we Fleet Engine musi być przypisana do pojazdu, aby Fleet Engine oblicza i śledzi szacowany czas dotarcia na miejsce. Możesz to zrobić podczas tworzenia podróży lub później, gdy ją aktualizujesz.
Po przypisaniu podróży do pojazdu usługa Fleet Engine automatycznie doda do niej
punkty pośrednie powiązane z kolejnymi trasami do punktów pośrednich pojazdu
. Pole remainingWaypoints
podróży zawiera listę wszystkich
punkty pośrednie, w tym te z innych podróży, które były odwiedzane w przeszłości
jest końcowa podróż.
Rozważmy na przykład 2 podróże po kolei: Podróż A. i Podróż B. Pojazd odebrał klienta w ramach Podróży A. Podczas jazdy do miejsca docelowego kierowca otrzymał prośbę o odbiór kolejnego klienta w ramach Podróży B.
- Wywołanie funkcji
getVehicle()
zwracaremainingWaypoints
które zawierają:
A Odbiór → B Odbiór → B Odbiór. getTrip()
lub wywołanie zwrotneonTripRemainingWaypointsUpdated
w Podróży A zwracaremainingWaypoints
, które zawierają:
Odbiór.- Może to być
getTrip()
alboonTripRemainingWaypointsUpdated
oddzwanianie dla Podróż B zwracaremainingWaypoints
zawierające:
Rezygnacja → B Odbiór → i B Rezygnacja.