Arquitectura y componentes

La implementación del progreso de viajes y pedidos implica trabajar con varios componentes de la solución de viajes y entregas a pedido: Fleet Engine, el SDK para consumidores y el SDK de Driver:

  • Fleet Engine es el servicio de backend de la solución On-demand Rides & Deliveries. Es responsable de administrar los viajes y el estado del vehículo. Controla transacciones entre el SDK de Driver, el SDK del consumidor y tu servicio de backend, que pueden comunicarse con Fleet Engine mediante llamadas de REST o gRPC.

  • El SDK de consumidores es una biblioteca cliente que integras en tu app para consumidores. Es responsable de presentar la experiencia de uso compartido del recorrido, que incluye el seguimiento de la ruta del conductor, la distancia restante y la hora de llegada estimada. El SDK de consumidor puede usarse para dispositivos móviles (Android o iOS) o para la Web (JavaScript).

  • El SDK de Driver es una biblioteca cliente que integras en tu app del controlador. Es responsable de actualizar Fleet Engine con la ubicación, la ruta, la distancia restante y la hora de llegada estimada del conductor. También incluye el SDK de Navigation, que proporciona instrucciones de navegación paso a paso para el conductor. Para obtener más información, consulta Navegación con Google Maps.

En el siguiente diagrama de arquitectura, se muestra la relación entre estos componentes:

Arquitectura

Viajes, vehículos y puntos de referencia

La creación de una aplicación de progreso del viaje y el pedido implica trabajar con viajes, vehículos y puntos de referencia.

Viajes

Un viaje representa un recorrido: el viaje que transporta al consumidor (o la comida que pidió) desde un punto de partida hasta un punto de destino, incluidos los puntos de referencia intermedios a lo largo del camino.

De manera programática, un objeto Trip encapsula una ubicación de recogida, un destino, la ubicación actual del vehículo, la ruta que se recorrerá, los puntos de referencia intermedios y el tipo de viaje (exclusivo o compartido).

Vehículos

Un vehículo representa un vehículo de tu flota. De manera programática, un objeto Vehicle encapsula la ubicación del vehículo, una lista de viajes actuales y una lista de puntos de referencia actuales.

Puntos de referencia

Un punto de referencia representa una ubicación en una ruta. Puede ser un punto de partida, un lugar de destino o un hito solo por pasar. De manera programática, un objeto Waypoint contiene la posición del punto de referencia como un conjunto de coordenadas geográficas, el tipo y el identificador del viaje que lo incluye.

Tanto los viajes como los vehículos contienen puntos de referencia:

  • El conjunto de puntos de referencia de un viaje contiene todos los puntos de referencia relevantes para el viaje. Puede incluir puntos de referencia para otros viajes si este se comparte con otros.

  • El conjunto de puntos de referencia de un vehículo contiene todos los demás para el vehículo, incluidos los puntos de referencia de varios viajes.

Flujo de muestra

En el siguiente diagrama, se muestra el flujo típico de progreso de viajes y pedidos. Para obtener más información, consulta Cómo crear y mostrar un viaje de destino único.

Diagrama de secuencias

En los siguientes pasos, se describe cómo configurar el flujo de muestra:

  1. Crea un vehículo, habilita Compartir ubicación y, luego, establece el estado del vehículo en En línea. Creas vehículos a través de Fleet Engine. Puedes establecer el estado del vehículo en online, ya sea a través de Fleet Engine o del SDK de Driver.

  2. Haz coincidir un cliente con tu vehículo. Puedes usar el método SearchVehicles() para encontrar una lista de posibles vehículos de tu flota.

  3. Crea un viaje en Fleet Engine, asigna el vehículo a ese viaje, asocia ese viaje con la app de los consumidores y bríndale al conductor las ubicaciones de recogida y llegada.

  4. El SDK de Driver actualiza automáticamente la hora de llegada estimada, la distancia y la ruta durante el viaje. Eres responsable de actualizar el estado del viaje.

Para comenzar a implementar el progreso del viaje y el pedido, consulta Cómo crear y mostrar un viaje de destino único.