Recupera datos de viajes directamente desde Fleet Engine

En esta guía, se muestra cómo recuperar datos de viajes directamente de Fleet Engine, como un alternativa al uso del SDK para consumidores. Puedes usar este enfoque para más control sobre la experiencia del usuario final, a la vez que aprovechas la flota la ubicación del vehículo, la hora de llegada estimada y la planificación de ruta precisas y en tiempo real de Engine.

Si deseas obtener detalles sobre el uso del SDK para consumidores, consulta Comparte recorridos para contenido a pedido. viajes.

Recupera información de viajes

Para recuperar información de viajes directamente de Fleet Engine, llama al GetTrip y especifica la vista JOURNEY_SHARING_V1S. Consulta la referencia de RPC o REST

Por lo general, tu servidor sondearía el servicio de viajes para conocer el estado de cada viaje. mientras el pasajero supervisa activamente el progreso del vehículo. Ubicación del vehículo las actualizaciones suelen ocurrir cada 10 segundos, y el sistema debe sondear la misma tarifa. El campo Trip.last_location.update_time se puede supervisar para verificar hubo alguna actualización 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 la información 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

Recuperar los puntos de referencia de viaje restantes

La entidad Trip contiene un campo repetido de tipo TripWaypoint. Este campo incluye todos los puntos de referencia que el vehículo deberá recorrer, en orden, antes el último punto de llegada del viaje. Especificar la vista de Viajes compartidos te indica Fleet Engine para colocar información actualizada en los puntos de referencia restantes[0] TripWaypoint En otras vistas, que no son de la función Compartir viajes, ese punto de referencia no generalmente reflejan la última posición 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.

A continuación, se muestra un ejemplo del campo remaining_waypoints para un viaje, el viaje A:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1er LatLng de la ruta restante al punto de partida
2° objeto LatLng de la ruta restante al punto de partida
último objeto LatLng de la ruta restante hasta el retiro
retiro_punto, si es diferente del último
traffic_data
distancia_metros = distancia desde la ubicación actual del vehículo por path_to_waypoint hasta el punto de partida
eta = hora de llegada estimada actualizada
duración = duración actualizada
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1er LatLng del segmento de destino
Segundo LatLng del segmento de destino
último objeto LatLng del segmento de destino
dropoff_point, si es diferente del último
traffic_data
length_meters = distancia desde el punto de partida a lo largo de path_to_waypoint hasta el destino
eta = hora de llegada estimada actualizada
duración = duración del tramo de abandono

Con viajes de agrupación consecutivos y compartidos, esta lista puede contener puntos de referencia de otros viajes que se deben atravesar antes de 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 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 serían propagado 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 completaría de manera similar, pero solo los las tres primeras entradas, ya que el punto de llegada del Viaje A no es parte de la ruta del Viaje B.