Buscar vehículos

Como parte del servicio de viajes a pedido de movilidad, puedes buscar vehículos cercanos con el método SearchVehicles

El método SearchVehicles te permite encontrar vehículos cercanos disponibles en tu aplicación para dispositivos móviles para consumidores que se adapta mejor a un viaje específico o a una entrega para cada solicitud. La API de SearchVehicles muestra una lista clasificada de vehículos cuyos coinciden con los atributos de viaje solicitados. La clasificación se ordena por tu elegir entre la hora de llegada estimada, la distancia o la distancia en línea recta desde el punto de partida.

Buscar atributos Atributos del vehículo
  • Ubicaciones de partida y llegada
  • Tipos de viaje y vehículo solicitados
  • Capacidad requerida
  • Otros atributos obligatorios de coincidencia
  • La última ubicación conocida de un vehículo
  • El estado, el tipo o la capacidad del vehículo
  • Otros atributos personalizados

Usa el método SearchVehicles

Para usar SearchVehicles, sigue este proceso general:

  1. Crea un SearchVehiclesRequest basado en el viaje que se asignará.
  2. Llama a la API de SearchVehicles (vehicleService.searchVehicles) con el solicitud creada.
  3. Procesa el SearchVehicleResponse que muestra la API.

Campos de SearchVehiclesRequest

Usa los siguientes campos de atributos obligatorios para crear un SearchVehiclesRequest:

Campo Descripción
elemento superior Obligatorio. Debe estar en el formato providers/{provider}. El proveedor debe ser el ID del proyecto de Google Cloud al que pertenece la cuenta de servicio que realiza esta llamada.
vehicle_types Obligatorio. Los tipos de vehículos solicitados: AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE o PEDESTRIAN
trip_types Obligatorio. Puede ser EXCLUSIVO (un viaje activo a la vez por conductor) o COMPARTIDO (uno o varios viajes a la vez por conductor).
minimum_capacity Obligatorio. Es la capacidad mínima restante del vehículo para un viaje nuevo, ya sea para pasajeros o entregas.
pickup_point Obligatorio. Es el lugar de partida del viaje expresado en coordenadas de latitud y longitud.
dropoff_point Opcional. La ubicación de destino del viaje expresada en coordenadas de latitud y longitud. El campo es obligatorio si trip_types contiene TripType.SHARED.
pickup_radius_meters Obligatorio. El radio en metros del área de búsqueda del vehículo desde el punto de partida.
order_by Obligatorio. Ordena los vehículos de una de las siguientes maneras:
  • PICKUP_POINT_ETA, la hora de llegada estimada del vehículo al punto de partida.
  • PICKUP_POINT_DISTANCE, la distancia entre el vehículo y el punto de partida.
  • DROPOFF_POINT_ETA, la hora de llegada estimada del vehículo para completar el viaje en el punto de llegada.
  • PICKUP_POINT_STRAIGHT_DISTANCE, la distancia en línea recta (no en la ruta) entre el vehículo y el punto de partida.
count Obligatorio. La cantidad máxima de vehículos que se deben devolver de 1 a 50.
Filtro Opcional. Una búsqueda de filtro para aplicar cuando se busquen vehículos.

Consulta la documentación de referencia para ver el conjunto completo SearchVehicleRequest.

Situaciones de SearchVehiclesRequest

En esta sección, se muestran ejemplos de cómo construir un SearchVehiclesRequest.

Por ejemplo, supongamos que un cliente desea que lo retiren en Restaurant X, y tienes cuatro vehículos:

  • Vehículo 1: A 3,500 m de distancia de RestaurantX
  • Vehículo 2: A 100 m de distancia de RestaurantX en un viaje activo con partida y te dejamos en las ubicaciones A y B.
  • Vehículo 3: a 200 m de distancia de RestaurantX y una bajada restante muy lejos.
  • Vehículo 4: A 1,000 m de distancia de RestaurantX

A continuación, se muestran varias solicitudes según el vehículo que devuelve.

Devoluciones del vehículo 4

     Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
    

Devoluciones de los vehículos 3 y 4

     Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
    

Devuelve los vehículos 2, 3 y 4

     Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
    

Campos SearchVehiclesResponse

Una SearchVehiclesResponse consiste en una lista de entidades VehicleMatch, clasificadas según el atributo order_by especificado en SearchVehiclesRequest. Cada La entidad VehicleMatch tiene los siguientes campos:

Campo Descripción
vehículo El objeto Vehicle, incluidos los atributos id_vehículo y Vehicle
vehicle_pickup_eta La hora de llegada estimada del vehículo en el punto de partida del nuevo viaje. Esta es la hora de llegada estimada en la que se conduce.
vehicle_pickup_distance_meter La distancia en metros entre el vehículo y el lugar de recogida del nuevo viaje.
vehicle_pickup_straight_line_distance_meter Es la distancia en línea recta en metros entre el vehículo y el lugar de recogida del nuevo viaje.
vehicle_dropoff_eta La marca de tiempo de la hora de llegada estimada del vehículo en el punto de partida del nuevo viaje. Ten en cuenta que la hora de llegada estimada es la hora de llegada estimada en formato en automóvil.
vehicle_trips_waypoints Una lista de los puntos de referencia restantes, incluidos los puntos de partida y llegada, para los viajes activos actualmente asignados al vehículo.
vehicle_match_type El tipo de viaje del vehículo, ya sea EXCLUSIVE, BACK_TO_BACK, CARPOOL o CARPOOL_BACK_TO_BACK.

Para obtener una lista completa de los campos VehicleMatch, consulta lo siguiente:

Usa consultas de filtro

SearchVehicles y ListVehicles admiten el filtrado de atributos de vehículos con una consulta de filtro.

Las consultas de filtrado SOLO admiten el filtrado de atributos personalizados para vehículos. no se puede usar para otros campos. Cuando se usa en una búsqueda que incluye otro campo como minimum_capacity o vehicle_types, la búsqueda de filtro como una cláusula AND.

Por ejemplo, si buscas un vehículo que tiene una capacidad mínima de 6 y filtrar una attributes como apto para mascotas, tus criterios solo mostrarían el resultado aquellos que admitan mascotas y puedan transportar al menos 6 pasajeros.

Para conocer la sintaxis de las consultas de filtro, consulta AIP-160. para ver ejemplos. Para obtener detalles sobre cómo crear atributos de vehículos, consulta Vehículos atributos de la guía Actualiza los campos de vehículos.

Ejemplo de SearchVehicles

En el siguiente ejemplo, se muestra cómo usar la API de SearchVehicles con la Biblioteca gRPC de Java.

static final String PROJECT_ID = "project-id";

VehicleServiceBlockingStub vehicleService =
    VehicleService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;
SearchVehiclesRequest searchVehiclesRequest = SearchVehiclesRequest.newBuilder()
    .setParent(parent)
    .setPickupPoint( // Grand Indonesia East Mall
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder().setLatitude(-6.195139).setLongitude(106.820826)))
    .setDropoffPoint( // Balai Sidang Jkt Convention Center
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder().setLatitude(-6.213796).setLongitude(106.807195)))
    .setPickupRadiusMeters(2000)
    .setCount(10)
    .setMinimumCapacity(2)
    .addTripTypes(TripType.EXCLUSIVE)
    .addVehicleTypes(VehicleType.newBuilder().setCategory(Category.AUTO).build())
    .setCurrentTripsPresent(CurrentTripsPresent.ANY)
    .setFilter("attributes.on_trip=\"false\"")
    .setOrderBy(VehicleMatchOrder.PICKUP_POINT_ETA)
    .build();

try {
  SearchVehiclesResponse searchVehiclesResponse =
      vehicleService.searchVehicles(searchVehiclesRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case NOT_FOUND:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

List<VehicleMatch> vehicleMatches =
    searchVehicleResponse.getMatchesList();

// Each VehicleMatch contains a Vehicle entity and information about the
// distance and ETA to the pickup point and drop-off point.

¿Qué sigue?