İsteğe bağlı Mobilite gezisi hizmeti kapsamında, yakındaki araçları bulabilirsiniz.
SearchVehicles
yöntemini kullanın.
SearchVehicles
yöntemi, tüketici mobil uygulamanızda belirli bir yolculuğa veya teslimat isteğine en uygun, yakındaki müsait araçları bulmanızı sağlar. SearchVehicles
API, özellikleri istenen seyahat özellikleriyle eşleşen araçların sıralanmış bir listesini döndürür. Sıralama sizin:
TVS, mesafe veya düz çizgi uzaklığı arasından seçim yapabilirsiniz.
Arama Özellikleri | Araç Özellikleri |
---|---|
|
|
SearchVehicles
yöntemini kullanın
SearchVehicles
özelliğini kullanmak için şu genel süreci izleyin:
- Atanacak geziye göre bir
SearchVehiclesRequest
oluşturun. SearchVehicles
API'yi (vehicleService.searchVehicles
) oluşturulan istektir.- API'den döndürülen
SearchVehicleResponse
dosyasını işleyin.
SearchVehiclesRequest alanları
SearchVehiclesRequest
oluşturmak için aşağıdaki zorunlu özellik alanlarını kullanın:
Alan | Açıklama |
---|---|
üst | Zorunludur. provider/{provider} biçiminde olmalıdır. Sağlayıcı, bu çağrıyı yapan hizmet hesabının üyesi olduğu Google Cloud projesinin proje kimliği olmalıdır. |
vehicle_types | Zorunludur. İstenen araç türleri: OTO, İKİ_WHEELER, TAXI, KAMYON, BICYCLE veya YAYA. |
trip_types | Zorunludur. ÖZEL (sürücü başına aynı anda bir aktif yolculuk) veya PAYLAŞILAN (sürücü başına bir defada bir veya daha fazla yolculuk). |
minimum_capacity | Zorunludur. Yolcular veya teslimatlar için aracın kalan minimum kapasitesi. |
pickup_point | Zorunludur. Seyahatin enlem/boylam koordinatlarında alınma yeri. |
dropoff_point | İsteğe bağlı. Enlem/boylam koordinatlarında gezinin ayrılma yeri. trip_types TripType.SHARED değerini içeriyorsa alan gereklidir. |
pickup_radius_meters | Zorunludur. Teslim alma noktasından araç arama alanının metre cinsinden yarıçapı. |
order_by | Zorunludur. Araçları aşağıdakilerden birine göre sipariş edin:
|
sayı | Zorunludur. 1'den 50'ye kadar geri dönülecek maksimum araç sayısı. |
Filtre | İsteğe bağlı. Araç ararken uygulanacak bir filtre sorgusu. |
Tekliflerinin tamamını görmek için Referans belgelerine bakın SearchVehicleRequest alanlarına girin.
SearchVehiclesRequest senaryoları
Bu bölümde, SearchVehiclesRequest
'ün nasıl oluşturulacağına dair örnekler verilmiştir.
Örneğin, bir müşterinin RestaurantX'ten alınmasını istediğini ve dört aracınız olduğunu varsayalım:
- 1. Araç: RestaurantX'ten 3.500 m uzakta.
- 2. Araç: Aktif bir yolculuğa dahil olmak üzere RestaurantX'ten 100 m uzakta ve A ve B konumlarına bırakılıyor.
- 3. Araç: RestaurantX'ten 200 m uzakta ve bir ayrılma süresi kaldı fark ettim.
- 4. Araç: RestaurantX'ten 1.000 m uzakta.
Aşağıda, iade ettikleri araca ait çeşitli istekler gösterilmektedir.
Araç 4'ü İade Et
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
3 ve 4 numaralı aracı döndürür
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
2, 3 ve 4. Aracı döndürür
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
SearchVehiclesResponse alanları
SearchVehiclesResponse
, listelenen VehicleMatch
varlık listesinden oluşur.
SearchVehiclesRequest
içinde belirtilen "order_by" özelliğine göre. Her biri
VehicleMatch
varlığı aşağıdaki alanlara sahiptir:
Alan | Açıklama |
---|---|
araç | vehicle_id ve Vehicle özellikleri dahil Vehicle nesnesi. |
vehicle_pickup_eta | Aracın yeni seyahatin teslim alınacağı konumdaki TVS'si. Bu, araçla tahmini varış süresidir. |
vehicle_pickup_distance_meter | Araç ile yeni seyahatin alınacağı yer arasındaki metre cinsinden mesafe. |
vehicle_pickup_straight_line_distance_meter | Araç ile yeni seyahatin teslim alma konumu arasındaki düz çizgi mesafesi (metre cinsinden). |
vehicle_dropoff_eta | Zaman damgası aracın TVS'sinin yeni seyahatin teslim alınacağı konumdaki yerini belirler. TVS'nin araba TVS olduğunu unutmayın. |
vehicle_trips_waypoints | Halihazırda araca atanmış etkin yolculuklar için alma ve bırakma noktaları da dahil olmak üzere kalan ara noktaların listesi. |
vehicle_match_type | Aracın seyahat türü: EXCLUSIVE, BACK_TO_BACK, CARPOOL veya CARPOOL_BACK_TO_BACK. |
VehicleMatch
alanlarının tam listesi için:
VehicleMatch message
(gRPC)VehicleMatch resource
(REST)
Filtre sorgularını kullanma
SearchVehicles
ve ListVehicles
, filtre sorgusu kullanarak araç özelliklerinde filtrelemeyi destekler.
Filtre sorguları YALNIZCA araçlara ilişkin özel özelliklerde filtrelemeyi destekler ve
diğer alanlar için kullanılamaz. Başka alanı içeren bir aramada kullanıldığında
ölçütleri (ör. minimum_capacity
veya vehicle_types
)
bir AND
yan tümcesi olarak çalışır.
Örneğin, minimum kapasitesi 6 olan bir araç arıyor ve evcil hayvan kabul eden gibi bir attributes
filtresi uyguluyorsanız ölçütleriniz yalnızca hem evcil hayvan kabul eden hem de en az 6 yolcu taşıyabilen araçları döndürür.
Filtre sorgusu söz dizimi için AIP-160'a bakın inceleyebilirsiniz. Araç nitelikleri oluşturmayla ilgili ayrıntılar için bkz. Araç özellikleri alanını inceleyin.
SearchVehicles Örneği
Aşağıdaki örnekte,SearchVehicles
Java gRPC kitaplığı.
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.