El SDK de consumidores proporciona una función lista para usar que permiten que las apps de consumo de transporte compartido muestren la ubicación y el progreso del vehículo que las lleva en su viaje.
Sin embargo, algunos proveedores de transporte compartido desean tener más control sobre la experiencia del cliente para sus usuarios finales con una integración flexible y, al mismo tiempo, aprovechar la ubicación precisa y en tiempo real de los vehículos, la hora de llegada estimada y la ruta de Google. En esta guía, se muestra cómo recuperar datos de viajes directamente desde Fleet Engine, como alternativa al uso del SDK para consumidores.
Descripción general
Para recuperar información de viajes de Fleet Engine directamente, llama al método GetTrip
y especifica la vista JURNEY_SHARING_V1S (RPC | REST).
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 de viaje resultante (RPC | REST) tendrá los siguientes campos completados con la información más reciente disponible para el viaje:
name
vehicle_id
trip_status
trip_type
number_of_passengers
pickup_point
actual_pickup_point
pickup_time
intermediate_destinations
intermediate_destinations_version
intermediate_destination_index
dropoff_point
actual_dropoff_point
dropoff_time
remaining_waypoints
last_location
view
(== JURNEY_SHARING_V1S)
Los proveedores de transporte compartido suelen consultar el servicio de viajes para conocer el estado de cada viaje cada dos a cinco segundos mientras el pasajero supervisa de forma activa el progreso del vehículo. Por lo general, las actualizaciones de la ubicación del vehículo se realizan en intervalos más largos, por ejemplo, de 10 segundos. El campo Trip.last_location.update_time
se puede supervisar para ver si hubo actualizaciones desde la llamada anterior a GetTrip
.
Puntos de referencia del viaje
La entidad de viaje contiene un campo repetido de tipo TripWaypoint
(RPC | REST).
Este campo incluye todos los puntos de referencia que el vehículo deberá recorrer, en orden, antes del último punto de llegada del viaje. Cuando especificas la vista de uso compartido del recorrido, se le indica a Fleet Engine que coloque información actualizada en el resto de los puntos de referencia[0] TripWaypoint
. En otras vistas que no son de uso compartido de viajes, ese punto de referencia no suele reflejar la última posición del vehículo asignado.
A continuación, se muestra un ejemplo del campo remaining_waypoints
del viaje A:
| |||||||||||||||||||||
|
Con los viajes consecutivos y compartidos (de uso compartido), esta lista puede contener puntos de referencia de otros viajes que se recorrerán durante este viaje. Por ejemplo, considera la situación en la que el Viaje B está asignado 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 concisión, pero se propagarán de manera coherente con el ejemplo anterior).
[0] | trip_id = "viaje_A" |
---|---|
Waypoint_type = PICKUP_WAYPOINT_TYPE | |
[1] | trip_id = "viaje_B" |
Waypoint_type = PICKUP_WAYPOINT_TYPE | |
[2] | trip_id = "viaje_B" |
Waypoint_type = DROP_OFF_WAYPOINT_TYPE | |
[3] | trip_id = "viaje_A" |
Waypoint_type = DROP_OFF_WAYPOINT_TYPE |
El campo remaining_waypoint
del viaje B se propagaría de manera similar, pero solo estarán presentes las primeras tres entradas, ya que el punto de destino del viaje A no forma parte de la ruta del viaje B.