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 Endverbraucher-App, die am besten für eine bestimmte Fahrt oder Lieferung geeignet ist
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 vom Abholpunkt als Luftlinie wählen.
Suchattribute | Fahrzeugattribute |
---|---|
|
|
Methode SearchVehicles
verwenden
Wenn Sie SearchVehicles
verwenden möchten, gehen Sie so vor:
- Erstellen Sie basierend auf der zuzuweisenden Fahrt eine
SearchVehiclesRequest
. - Rufen Sie die
SearchVehicles
API (vehicleService.searchVehicles
) mit dem erstellte Anfrage. - Verarbeiten Sie die
SearchVehicleResponse
, die von der API zurückgegeben wurden.
SearchVehiclesRequest-Felder
Verwenden Sie die folgenden erforderlichen Attributfelder zum Erstellen eines
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 verbleibende Mindestkapazität des Fahrzeugs für eine neue Fahrt, entweder für Fahrgäste oder für 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:
|
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 sehen Sie verschiedene Anfragen nach dem Fahrzeug, das sie zurückgeben.
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, die in einer Rangfolge angeordnet sind.
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. 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 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 unter:
VehicleMatch message
(gRPC)VehicleMatch resource
(REST)
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
funktioniert 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
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.