Fahrzeuge suchen

Im Rahmen des Mobilitätsdiensts für Fahrten auf Abruf können Sie mithilfe der Methode SearchVehicles Fahrzeuge in der Nähe finden.

Mit der Methode SearchVehicles können Sie in Ihrer mobilen App für Endnutzer verfügbare Fahrzeuge in der Nähe finden, die für eine bestimmte Fahrt oder einen bestimmten Lieferauftrag am besten geeignet sind. Die SearchVehicles API gibt eine Rangliste der Fahrzeuge zurück, deren Attribute mit den angeforderten Fahrtattributen übereinstimmen. Die Reihenfolge wird anhand Ihrer Auswahl von geschätzter Ankunftszeit, Entfernung oder Luftlinie vom Abholpunkt festgelegt.

Suchattribute Fahrzeugattribute
  • Abhol- und Rückgabeorte
  • Angeforderte Fahrzeug- und Fahrttypen
  • Erforderliche Kapazität
  • Andere erforderliche Abgleichsattribute
  • Der letzte bekannte Standort eines Fahrzeugs
  • Fahrzeugstatus, -typ oder -kapazität
  • Andere benutzerdefinierte Attribute

SearchVehicles-Methode verwenden

So verwenden Sie SearchVehicles:

  1. Erstellen Sie eine SearchVehiclesRequest basierend auf der zuzuweisenden Fahrt.
  2. Rufen Sie die SearchVehicles API (vehicleService.searchVehicles) mit der erstellten Anfrage auf.
  3. Verarbeite die von der API zurückgegebene SearchVehicleResponse.

Felder für SearchVehiclesRequests

Verwenden Sie die folgenden erforderlichen Attributfelder, um eine SearchVehiclesRequest zu erstellen:

Feld Beschreibung
Übergeordnetes Element Erforderlich. Muss im Format „providers/{provider}“ vorliegen. Der Anbieter muss die Projekt-ID des Google Cloud-Projekts sein, zu dem das Dienstkonto gehört, das diesen Aufruf ausführt.
vehicle_types Erforderlich. Angeforderte Fahrzeugtypen: AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE oder PEDESTRIAN.
trip_types Erforderlich. Entweder EXCLUSIVE (eine aktive Fahrt pro Fahrer) oder SHARED (eine oder mehrere Fahrten pro Fahrer).
minimum_capacity Erforderlich. Die verbleibende Mindestkapazität des Fahrzeugs für eine neue Fahrt, entweder für Fahrgäste oder für Lieferungen.
pickup_point Erforderlich. Der Abholort der Fahrt in Breiten-/Längengradkoordinaten.
dropoff_point Optional. Der Zielort der Fahrt in Breiten-/Längengradkoordinaten. Das Feld ist erforderlich, wenn „trip_types“ den Wert „TripType.SHARED“ enthält.
pickup_radius_meters Erforderlich. Der Radius des Suchbereichs für Fahrzeuge in Metern vom Abholpunkt.
order_by Erforderlich. Sie können Fahrzeuge nach folgenden Kriterien sortieren:
  • PICKUP_POINT_ETA, die voraussichtliche Ankunftszeit des Fahrzeugs am Abholpunkt.
  • PICKUP_POINT_DISTANCE, die Entfernung zwischen dem Fahrzeug und dem Abholpunkt.
  • DROPOFF_POINT_ETA, die geschätzte Ankunftszeit des Fahrzeugs am Zielort.
  • PICKUP_POINT_STRAIGHT_DISTANCE: Die gerade Strecke (nicht auf der Route) zwischen dem Fahrzeug und dem Abholpunkt.
Anzahl Erforderlich. Die maximale Anzahl der zurückzugebenden Fahrzeuge (1 bis 50).
Filter Optional: Eine Filterabfrage, die bei der Suche nach Fahrzeugen angewendet werden soll.

Eine vollständige Liste der Felder von SearchVehicleRequest finden Sie in der Referenzdokumentation.

Szenarien für SearchVehiclesRequests

In diesem Abschnitt finden Sie Beispiele für die Erstellung einer SearchVehiclesRequest.

Angenommen, ein Kunde möchte bei Restaurant X abgeholt werden und Sie haben vier Fahrzeuge:

  • Fahrzeug 1: 3.500 m von Restaurant X entfernt.
  • Fahrzeug 2: 100 m vom Restaurant X entfernt, mit einer aktiven Fahrt mit Abhol- und Absetzvorgang an den Standorten A und B.
  • Fahrzeug 3: 200 m vom Restaurant X entfernt, mit einer verbleibenden Fahrt, die sehr weit entfernt ist.
  • Fahrzeug 4: 1.000 m von Restaurant X entfernt.

Im Folgenden sind verschiedene Anfragen nach dem Fahrzeug zu sehen, die zurückgegeben werden.

Rückgabefahrzeug 4

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

Gibt „Fahrzeug 3“ und „Fahrzeug 4“ zurück

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

Gibt „Fahrzeug 2“, „Fahrzeug 3“ und „Fahrzeug 4“ zurück

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

Felder in SearchVehiclesResponse

Ein SearchVehiclesResponse besteht aus einer Liste von VehicleMatch-Entitäten, die nach dem angegebenen Attribut „order_by“ in der SearchVehiclesRequest sortiert sind. Jede VehicleMatch-Entität hat 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. Dies ist die voraussichtliche Ankunftszeit mit dem Auto.
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 zwischen dem Fahrzeug und dem Abholort der neuen Fahrt in Metern.
vehicle_dropoff_eta Der Zeitstempel der voraussichtlichen Ankunftszeit des Fahrzeugs am Abholort der neuen Fahrt. Die geschätzte Ankunftszeit ist die geschätzte Ankunftszeit für Pkw.
vehicle_trips_waypoints Eine Liste der verbleibenden Wegpunkte, einschließlich Abhol- und Abgabestellen, für die aktiven Fahrten, die dem Fahrzeug derzeit zugewiesen sind.
vehicle_match_type Der Fahrttyp des Fahrzeugs: EXCLUSIVE, BACK_TO_BACK, CARPOOL oder CARPOOL_BACK_TO_BACK.

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

Filterabfragen verwenden

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

Bei Filterabfragen ist NUR die Filterung nach benutzerdefinierten Attributen für Fahrzeuge möglich. Sie können nicht für andere Felder verwendet werden. Wenn sie in einer Suche verwendet wird, die andere Feldkriterien wie minimum_capacity oder vehicle_types enthält, fungiert die Filterabfrage als AND-Klausel.

Wenn Sie beispielsweise nach einem Fahrzeug mit einer Mindestkapazität von 6 Personen suchen und eine attributes wie „haustierfreundlich“ filtern, werden nur Fahrzeuge zurückgegeben, die sowohl haustierfreundlich sind als auch mindestens 6 Personen befördern können.

Beispiele für die Syntax von Filterabfragen finden Sie unter AIP-160. Weitere Informationen zum Erstellen von Fahrzeugattributen finden Sie im Leitfaden Fahrzeugfelder aktualisieren unter Feld „Fahrzeugattribute“.

Beispiel für SearchVehicles

Im folgenden Beispiel wird gezeigt, wie Sie die SearchVehicles API mit der Java gRPC-Bibliothek verwenden.

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