Mobility on-demand trip hizmeti kapsamında, SearchVehicles
yöntemini kullanarak yakındaki araçları bulabilirsiniz.
SearchVehicles
yöntemi, tüketici mobil uygulamanızda belirli bir yolculuğa veya teslimat isteğine en uygun, yakındaki mevcut 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, teslimat süresi, mesafe veya teslim alma noktasına olan düz çizgi mesafesi seçeneklerinize göre yapılır.
Arama Özellikleri | Araç Özellikleri |
---|---|
|
|
SearchVehicles
yöntemini kullanın
SearchVehicles
adresini kullanmak için aşağıdaki genel süreci uygulayın:
- Atanacak seyahate göre bir
SearchVehiclesRequest
oluşturun. - Oluşturulan isteği kullanarak
SearchVehicles
API'yi (vehicleService.searchVehicles
) çağırın. - API'den döndürülen
SearchVehicleResponse
değerini işleyin.
SearchVehiclesRequest alanları
SearchVehiclesRequest
oluşturmak için aşağıdaki zorunlu özellik alanlarını kullanın:
Alan | Açıklama |
---|---|
üst | Zorunludur. providers/{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 (AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE veya PEDESTRIAN). |
trip_types | Zorunludur. TEKLİ (sürücü başına aynı anda bir etkin yolculuk) veya ORTAK (sürücü başına aynı anda bir veya daha fazla yolculuk). |
minimum_capacity | Zorunludur. Yeni bir yolculuk için araçta kalan minimum kapasite (yolcu veya teslimat için). |
pickup_point | Zorunludur. Gezi için teslim alma konumu (enlem/boylam koordinatları). |
dropoff_point | İsteğe bağlı. Yolculuğun, enlem/boylam koordinatlarıyla belirtilen teslimat konumu. trip_types TripType.SHARED değerini içeriyorsa alan gereklidir. |
pickup_radius_meters | Zorunludur. Araç arama alanının, teslim alma noktasından itibaren metre cinsinden yarıçapı. |
order_by | Zorunludur. Araçlarınızı aşağıdaki ölçütlere göre sıralayın:
|
sayı | Zorunludur. Döndürülecek maksimum araç sayısı (1 ila 50). |
Filtre | İsteğe bağlı. Araç araması yaparken uygulanacak filtre sorgusu. |
SearchVehicleRequest alanlarının tamamını görmek için Referans dokümanlarını inceleyin.
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ç: A ve B konumlarında teslim alma ve bırakma işleminin yapıldığı etkin bir seyahatle RestaurantX'ten 100 m uzaklıkta.
- 3. Araç: X restoranından 200 m uzaklıkta, çok uzak bir yere teslimat yapması gerekiyor.
- 4. Araç: RestaurantX'ten 1.000 m uzaklıkta.
Aşağıda, iade edilen aracın çeşitli istekleri gösterilmektedir.
Araç 4'ü iade eder
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
3. ve 4. aracı döndürme
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
2, 3 ve 4 numaralı aracı döndürür
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
SearchVehiclesResponse alanları
SearchVehiclesResponse
, SearchVehiclesRequest
öğesinde belirtilen order_by özelliğine göre sıralanmış VehicleMatch
öğelerinin listesinden oluşur. Her VehicleMatch
öğesinde aşağıdaki alanlar bulunur:
Alan | Açıklama |
---|---|
araç | vehicle_id ve Vehicle özellikleri dahil Vehicle nesnesi. |
vehicle_pickup_eta | Aracın yeni seyahatin teslim alma noktasındaki tahmini varış zamanı. Bu, araçla tahmini varış süresidir. |
vehicle_pickup_distance_meter | Araç ile yeni seyahatin teslim alma konumu arasındaki mesafe (metre cinsinden). |
vehicle_pickup_straight_line_distance_meter | Araç ile yeni seyahatin teslim alma konumu arasındaki doğrusal mesafe (metre cinsinden). |
vehicle_dropoff_eta | Yeni seyahatin teslim alma konumundaki araç TVS'sinin zaman damgası. TVS'nin araçla seyahat için verilen TVS olduğunu unutmayın. |
vehicle_trips_waypoints | Araç için şu anda atanan etkin seyahatlerin teslim alma ve bırakma noktaları dahil olmak üzere kalan yol noktalarını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çlar için özel özelliklerde filtrelemeyi destekler ve diğer alanlar için kullanılamaz. Filtre sorgusu, minimum_capacity
veya vehicle_types
gibi başka alan ölçütleri içeren bir aramada kullanıldığında AND
ifadesi olarak işlev görür.
Örneğin, minimum 6 kişilik bir araç arıyor ve evcil hayvan kabul edenler 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 sorgu söz dizimi için örneklere AIP-160 sayfasından ulaşabilirsiniz. Araç özellikleri oluşturma hakkında ayrıntılı bilgi için Araç alanlarını güncelleme kılavuzundaki Araç özellikleri alanı bölümüne bakın.
SearchVehicles Örneği
Aşağıdaki örnekte, SearchVehicles
API'nin Java gRPC kitaplığı kullanılarak nasıl kullanılacağı gösterilmektedir.
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.