Fahrzeuge suchen

Im Rahmen des Mobility-on-Demand-Fahrdienstes kannst du Fahrzeuge in der Nähe finden mithilfe der Methode SearchVehicles.

Mit der Methode SearchVehicles können Sie verfügbare Fahrzeuge in der Nähe in Ihrem Mobile App für Verbraucher, die sich am besten für eine bestimmte Fahrt oder Lieferung eignen Die SearchVehicles API gibt eine Rangliste der Fahrzeuge zurück, deren mit den angeforderten Fahrtattributen übereinstimmen. Das Ranking wird anhand Ihrer Sie können entweder die voraussichtliche Ankunftszeit, die Entfernung oder die Entfernung als Luftlinie vom Abholpunkt auswählen.

Suchattribute Fahrzeugattribute
  • Abhol- und Abgabeorte
  • Angeforderte Fahrzeug- und Fahrttypen
  • Erforderliche Kapazität
  • Andere erforderliche Attribute zum Abgleich
  • Der letzte bekannte Standort eines Fahrzeugs
  • Zustand, Typ oder Kapazität des Fahrzeugs
  • Andere benutzerdefinierte Attribute

Methode SearchVehicles verwenden

Wenn Sie SearchVehicles verwenden möchten, gehen Sie so vor:

  1. Erstellen Sie basierend auf der zuzuweisenden Fahrt eine SearchVehiclesRequest.
  2. Rufen Sie die SearchVehicles API (vehicleService.searchVehicles) mit dem erstellte Anfrage.
  3. Verarbeiten Sie die SearchVehicleResponse, die von der API zurückgegeben wurden.

SearchVehiclesRequest-Felder

Verwenden Sie die folgenden erforderlichen Attributfelder zum Erstellen einer SearchVehiclesRequest:

Feld Beschreibung
Übergeordnetes Element Erforderlich. Muss im Format „provider/{provider}“ angegeben werden. Der Anbieter muss die Projekt-ID des Google Cloud-Projekts sein, zu dem das Dienstkonto, das diesen Aufruf durchführt, gehört.
vehicle_types Erforderlich. Angeforderte Fahrzeugtypen: AUTO, TWO_WHEELER, TAXI, LKW, BICYCLE oder FUẞGÄNGER
trip_types Erforderlich. Entweder EXKLUSIV (eine aktive Fahrt pro Fahrer) oder GETEILT (eine oder mehrere Fahrten gleichzeitig und pro Fahrer).
minimum_capacity Erforderlich. Die minimale verbleibende Kapazität des Fahrzeugs für eine neue Fahrt, entweder für Passagiere oder Lieferungen.
pickup_point Erforderlich. Der Startort der Fahrt in Breiten- und Längengraden.
dropoff_point Optional. Der Abgabeort der Fahrt in Breiten- und Längengraden. Das Feld ist erforderlich, wenn trip_types „TripType.SHARED“ enthält.
pickup_radius_meters Erforderlich. Der Radius des Fahrzeugsuchbereichs in Metern vom Abholpunkt.
order_by Erforderlich. Sie können Fahrzeuge nach einer der folgenden Optionen bestellen:
  • PICKUP_POINT_ETA, die voraussichtliche Ankunftszeit des Fahrzeugs am Abholpunkt.
  • PICKUP_POINT_DISTANCE, die Entfernung zwischen Fahrzeug und Abholpunkt.
  • DROPOFF_POINT_ETA: Die voraussichtliche Ankunftszeit des Fahrzeugs für die Fahrt an der Abgabestelle.
  • PICKUP_POINT_STRAIGHT_DISTANCE, die Luftlinie (nicht auf der Route) zwischen dem Fahrzeug und dem Abholpunkt.
Anzahl Erforderlich. Die maximale Anzahl der zurückzugebenden Fahrzeuge von 1 bis 50.
Filter Optional: Eine Filterabfrage, die beim Suchen nach Fahrzeugen angewendet werden soll.

In der Referenzdokumentation finden Sie alle SearchVehicleRequest.

SearchVehiclesRequest-Szenarien

Dieser Abschnitt enthält Beispiele zum Erstellen einer SearchVehiclesRequest.

Angenommen, ein Kunde möchte im RestaurantX abgeholt werden. und Sie haben vier Fahrzeuge:

  • Fahrzeug 1: 3.500 m von RestaurantX entfernt.
  • Fahrzeug 2: 100 m von RestaurantX entfernt; eine aktive Fahrt mit Abholung und steigen Sie an den Orten A und B aus.
  • Fahrzeug 3: 200 m von RestaurantX entfernt; noch ein Ausstieg weit entfernt.
  • Fahrzeug 4: 1.000 m von RestaurantX entfernt.

Im Folgenden sind verschiedene Anfragen der zurückgegebenen Fahrzeuge aufgeführt.

Rückgabe Fahrzeug 4

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

Fahrzeug 3 und Fahrzeug 4 werden zurückgegeben

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

Fahrzeug 2, 3 und 4 werden zurückgegeben

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

SearchVehiclesResponse-Felder

Eine SearchVehiclesResponse besteht aus einer Liste von VehicleMatch-Entitäten, sortiert durch das angegebene „order_by“-Attribut in SearchVehiclesRequest. Jedes Die Entität VehicleMatch enthält die folgenden Felder:

Feld Beschreibung
Verkehrsmittel Das Vehicle-Objekt, einschließlich der Attribute „vehicle_id“ und „Vehicle
vehicle_pickup_eta Die voraussichtliche Ankunftszeit des Fahrzeugs am Abholort der neuen Fahrt. Das ist die voraussichtliche Ankunftszeit für driving.
vehicle_pickup_distance_meter Die Entfernung in Metern zwischen dem Fahrzeug und dem Abholort der neuen Fahrt.
vehicle_pickup_straight_line_distance_meter Die Luftlinie in Metern zwischen dem Fahrzeug und dem Abholort der neuen Fahrt.
vehicle_dropoff_eta Der Zeitstempel der voraussichtlichen Ankunftszeit des Fahrzeugs am Abholort der neuen Fahrt. Die voraussichtliche Ankunftszeit ist die voraussichtliche Ankunftszeit.
vehicle_trips_waypoints Eine Liste der verbleibenden Wegpunkte, einschließlich Start- und Zielpunkten, für die aktiven Fahrten, die dem Fahrzeug aktuell zugewiesen sind.
vehicle_match_type Die Fahrtart des Fahrzeugs, entweder EXCLUSIVE, BACK_TO_BACK, CARPOOL oder CARPOOL_BACK_TO_BACK.

Eine vollständige Liste der VehicleMatch-Felder finden Sie hier:

Filterabfragen verwenden

SearchVehicles und ListVehicles unterstützen das Filtern nach Fahrzeugattributen Filterabfrage.

Filterabfragen unterstützen NUR das Filtern nach benutzerdefinierten Attributen für Fahrzeuge. kann nicht für andere Felder verwendet werden. Bei einer Suche, die ein anderes Feld enthält Kriterien wie minimum_capacity oder vehicle_types, die Filterabfrage Funktionen als AND-Klausel.

Wenn Sie z. B. nach einem Fahrzeug mit einer Mindestkapazität von Wenn Sie einen attributes filtern, z. B. haustierfreundlich, werden als Kriterien nur Fahrzeuge mit mindestens 6 Insassen geeignet sind.

Informationen zur Syntax von Filterabfragen finden Sie unter AIP-160. . Weitere Informationen zum Erstellen von Fahrzeugattributen finden Sie unter Fahrzeuge im Leitfaden Fahrzeugfelder aktualisieren.

SearchVehicles-Beispiel

Das folgende Beispiel zeigt, wie Sie die SearchVehicles API mithilfe des Java gRPC-Bibliothek.

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.

Nächste Schritte