En esta guía, se muestra cómo recuperar datos de viajes directamente desde Fleet Engine, como alternativa al uso del SDK de consumidor. Puedes usar este enfoque para tener más control sobre la experiencia del usuario final y, al mismo tiempo, aprovechar la ubicación, la hora de llegada estimada y la planificación de ruta precisas y en tiempo real de Fleet Engine.
Si deseas obtener detalles sobre cómo usar el SDK para consumidores, consulta Cómo compartir recorridos para viajes a pedido.
Recupera información de viajes
Para recuperar información de viajes 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 viaje para obtener el estado de cada viaje mientras el pasajero supervisa activamente el progreso del vehículo. Por lo general, las actualizaciones de la ubicación de los vehículos ocurren cada 10 segundos, y el sistema debe sondear a la 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 última información disponible del 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 |
|
Cómo recuperar los puntos de ruta restantes del viaje
La entidad Trip contiene un campo repetido del tipo TripWaypoint
. Este campo incluye todos los puntos de referencia que el vehículo deberá recorrer, en orden, antes del punto final de llegada del viaje. Especificar la vista de uso compartido de viajes le indica a
Fleet Engine que coloque información actualizada en remaining_waypoints[0]
TripWaypoint
. En otras vistas que no son de Viajes compartidos, ese punto de referencia no suele reflejar la última posición del vehículo asignado. Consulta la referencia de 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:
| |||||||||||||||||||||
|
Con viajes consecutivos y compartidos de reducción, 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. El campo remaining_waypoints
del viaje A se propagaría de la siguiente manera:
Se omitieron la mayoría de los campos para que sea más conciso, pero se propagarían de acuerdo 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 propagaría de manera similar, pero solo estarían presentes las tres primeras entradas, ya que el punto de llegada del Viaje A no es parte de la ruta del Viaje B.