En esta guía, se muestra cómo recuperar datos de viajes directamente desde Fleet Engine, como alternativa al uso del SDK para el consumidor. Puedes usar este enfoque para tener más control sobre la experiencia del usuario final y, al mismo tiempo, aprovechar la ubicación del vehículo, la ETA y la planificación de rutas precisas y en tiempo real de Fleet Engine.
Para obtener detalles sobre el uso del SDK de Consumer, consulta Cómo compartir viajes para viajes a pedido.
Recupera información del viaje
Para recuperar información del viaje directamente desde 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 del vehículo suelen producirse cada 10 segundos, y tu sistema debe sondear 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 sobre 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 ruta restantes del viaje
La entidad Trip contiene un campo repetido de tipo TripWaypoint
. Este campo incluye todos los puntos de ruta por los que el vehículo deberá viajar, en orden, antes del punto de destino final de este viaje. Especificar la vista de Compartir viaje le indica a Fleet Engine que coloque información actualizada en remaining_waypoints[0]TripWaypoint
. En otras vistas que no son de Viaje compartido, ese punto de referencia no suele reflejar la posición más reciente del vehículo asignado. Consulta la referencia de RPC o REST.
Para obtener más información, consulta Estado del viaje y puntos de ruta 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 compartidos y consecutivos, esta lista puede contener paradas 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. El campo remaining_waypoints
del viaje A se propagaría de la siguiente manera.
La mayoría de los campos se omitieron para mayor brevedad, pero se completarí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 se incluirían las tres primeras entradas, ya que el punto de partida del viaje A no forma parte de la ruta del viaje B.