En esta guía, se muestra cómo recuperar datos de viajes directamente de Fleet Engine como alternativa al uso del SDK para consumidores. Puedes usar este enfoque para tener más control sobre la experiencia del usuario final y, al mismo tiempo, aprovechar la ubicación precisa y en tiempo real del vehículo, la hora estimada de llegada y la planificación de ruta de Fleet Engine.
Para obtener detalles sobre el uso del SDK de consumidor, consulta Cómo compartir viajes para viajes on demand.
Recupera información del viaje
Para recuperar información del viaje directamente de Fleet Engine, llama al método GetTrip y especifica la vista JOURNEY_SHARING_V1S. Consulta la referencia de RPC o
REST.
Por lo general, tu servidor sondea el servicio de viajes para conocer el estado de cada viaje
mientras el pasajero supervisa activamente el progreso del vehículo. Las actualizaciones de la ubicación de los vehículos suelen ocurrir cada 10 segundos, y tu sistema debería realizar sondeos con esa misma frecuencia. Se puede supervisar el campo Trip.last_location.update_time para ver si
hubo actualizaciones desde la llamada anterior a GetTrip.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String TRIP_ID = "trip-A";
String tripName = "providers/" + PROJECT_ID + "/trips/" + TRIP_ID;
GetTripRequest getTripRequest =
GetTripRequest.newBuilder()
.setName(tripName)
.setView(JOURNEY_SHARING_V1S)
.build();
Trip trip = tripService.getTrip(getTripRequest);
El objeto Trip resultante tiene los siguientes campos propagados con la información más reciente disponible para el viaje:
name |
trip_status |
remaining_waypoints |
vehicle_id |
trip_type |
last_location |
number_of_passengers |
pickup_point |
view (== JOURNEY_SHARING_V1S) |
actual_pickup_point |
intermediate_destinations |
intermediate_destination_index |
pickup_time |
intermediate_destinations_version |
dropoff_point |
actual_dropoff_point |
dropoff_time |
|
Recupera los puntos de referencia restantes del viaje
La entidad Trip contiene un campo repetido de tipo TripWaypoint. Este campo incluye todas las paradas intermedias que el vehículo deberá recorrer, en orden, antes del punto de llegada final de este viaje. Especificar la vista de uso compartido del recorrido le indica a Fleet Engine que coloque información actualizada en remaining_waypoints[0] TripWaypoint. En otras vistas que no sean de Viaje compartido, ese punto de referencia no suele reflejar la posición más reciente del vehículo asignado. Consulta la
referencia para RPC o REST.
Para obtener más información, consulta Estado del viaje y puntos de referencia restantes del vehículo en la guía Introducción a los viajes.
Este es un ejemplo del campo remaining_waypoints para un viaje, el viaje A:
| |||||||||||||||||||||
| |||||||||||||||||||||
En el caso de los viajes consecutivos y de uso compartido, esta lista puede contener puntos de referencia de otros viajes que se deben recorrer antes de este viaje. Por ejemplo, considera
la situación en la que el viaje B se asigna al mismo vehículo que el viaje A. Luego, el campo remaining_waypoints del viaje A se completaría de la siguiente manera.
La mayoría de los campos se omitieron para mayor concisión, pero se propagarían de manera coherente con el ejemplo anterior.
| [0] | trip_id = "trip_A" |
|---|---|
| waypoint_type = PICKUP_WAYPOINT_TYPE | |
| [1] | trip_id = "trip_B" |
| waypoint_type = PICKUP_WAYPOINT_TYPE | |
| [2] | trip_id = "trip_B" |
| waypoint_type = DROP_OFF_WAYPOINT_TYPE | |
| [3] | trip_id = "trip_A" |
| waypoint_type = DROP_OFF_WAYPOINT_TYPE |
El campo remaining_waypoint del viaje B se completaría de manera similar, pero solo estarían presentes las primeras tres entradas, ya que el punto de llegada del viaje A no forma parte de la ruta del viaje B.