ऑन-डिमांड ट्रिप सेवा के तहत, SearchVehicles तरीके का इस्तेमाल करके, आस-पास मौजूद वाहनों को ढूंढा जा सकता है.
SearchVehicles तरीके से, आपके उपभोक्ता के मोबाइल ऐप्लिकेशन में आस-पास मौजूद ऐसे वाहन ढूंढे जा सकते हैं जो किसी खास राइड या डिलीवरी के अनुरोध के लिए सबसे सही हों. SearchVehicles API, वाहनों की रैंक वाली सूची दिखाता है. इन वाहनों के एट्रिब्यूट, अनुरोध की गई ट्रिप के एट्रिब्यूट से मैच करते हैं. रैंक, पिकअप पॉइंट से ईटीए, दूरी या सीधी लाइन की दूरी के हिसाब से तय की जाती है.
| खोज के एट्रिब्यूट | वाहन के एट्रिब्यूट |
|---|---|
|
|
SearchVehicles तरीके का इस्तेमाल करना
SearchVehicles का इस्तेमाल करने के लिए, यह सामान्य प्रोसेस अपनाएं:
- असाइन की जाने वाली ट्रिप के आधार पर,
SearchVehiclesRequestबनाएं. - बनाए गए अनुरोध के साथ,
SearchVehiclesAPI (vehicleService.searchVehicles) को कॉल करें. - API से मिले
SearchVehicleResponseको प्रोसेस करें.
SearchVehiclesRequest के फ़ील्ड
SearchVehiclesRequest बनाने के लिए, ज़रूरी एट्रिब्यूट के इन फ़ील्ड का इस्तेमाल करें:
| फ़ील्ड | ब्यौरा |
|---|---|
| माता-पिता | ज़रूरी है. यह providers/{provider} फ़ॉर्मैट में होना चाहिए. प्रोवाइडर, Google Cloud प्रोजेक्ट का प्रोजेक्ट आईडी होना चाहिए. सेवा खाता, इस प्रोजेक्ट का सदस्य होना चाहिए. |
| vehicle_types | ज़रूरी है. अनुरोध किए गए वाहन के टाइप. ये AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE या PEDESTRIAN हो सकते हैं. |
| trip_types | ज़रूरी है. यह EXCLUSIVE (हर ड्राइवर के लिए एक बार में एक चालू ट्रिप) या SHARED (हर ड्राइवर के लिए एक बार में एक या एक से ज़्यादा ट्रिप) हो सकता है. |
| minimum_capacity | ज़रूरी है. नई ट्रिप के लिए, वाहन की कम से कम बची हुई क्षमता. यह यात्रियों या डिलीवरी के लिए हो सकती है. |
| pickup_point | ज़रूरी है. अक्षांश/देशांतर के निर्देशांकों में, ट्रिप की पिकअप की जगह. |
| dropoff_point | ज़रूरी नहीं. अक्षांश/देशांतर के निर्देशांकों में, ट्रिप की ड्रॉप-ऑफ़ की जगह. अगर trip_types में TripType.SHARED शामिल है, तो यह फ़ील्ड ज़रूरी है. |
| pickup_radius_meters | ज़रूरी है. पिकअप पॉइंट से, वाहन की खोज के दायरे की त्रिज्या, जो मीटर में होनी चाहिए. |
| order_by | ज़रूरी है. इनमें से किसी एक के हिसाब से वाहनों को क्रम में लगाएं:
|
| सोलर पैनलों की संख्या | ज़रूरी है. वापस लाए जाने वाले वाहनों की ज़्यादा से ज़्यादा संख्या. यह 1 से 50 के बीच होनी चाहिए. |
| फ़िल्टर | ज़रूरी नहीं. वाहन खोजते समय लागू की जाने वाली फ़िल्टर क्वेरी. |
| maximum_staleness | ज़रूरी नहीं. इससे खोज को सिर्फ़ उन वाहनों तक सीमित किया जाता है जिन्होंने तय अवधि के अंदर, Fleet Engine को जगह की जानकारी के अपडेट भेजे हैं. अगर यह फ़ील्ड सेट नहीं है, तो सर्वर डिफ़ॉल्ट वैल्यू के तौर पर पांच मिनट का इस्तेमाल करता है. |
SearchVehicleRequest के सभी फ़ील्ड देखने के लिए, रेफ़रंस दस्तावेज़ देखें. SearchVehicleRequest
SearchVehiclesRequest के उदाहरण
इस सेक्शन में, SearchVehiclesRequest बनाने के तरीके के उदाहरण दिए गए हैं.
उदाहरण के लिए, मान लें कि कोई ग्राहक RestaurantX से पिकअप होना चाहता है और आपके पास चार वाहन हैं:
- वाहन 1: RestaurantX से 3,500 मीटर की दूरी पर.
- वाहन 2: RestaurantX से 100 मीटर की दूरी पर. यह वाहन, चालू ट्रिप पर है. इस ट्रिप में, पिकअप और ड्रॉप-ऑफ़ की जगहें A और B हैं.
- वाहन 3: RestaurantX से 200 मीटर की दूरी पर. इस वाहन को एक और ड्रॉप-ऑफ़ करना है, जो बहुत दूर है.
- वाहन 4: RestaurantX से 1,000 मीटर की दूरी पर.
यहां, वाहन के हिसाब से अलग-अलग अनुरोध दिखाए गए हैं.
वाहन 4 दिखाता है
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA
वाहन 3 और 4 दिखाता है
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled
वाहन 2, 3, और 4 दिखाता है
Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, current_trips_present = ALL
SearchVehiclesResponse के फ़ील्ड
SearchVehiclesResponse में, VehicleMatch इकाइयों की सूची होती है. इन्हें SearchVehiclesRequest में बताए गए order_by एट्रिब्यूट के हिसाब से रैंक किया जाता है. हर VehicleMatch इकाई में ये फ़ील्ड होते हैं:
| फ़ील्ड | ब्यौरा |
|---|---|
| गाड़ी | Vehicle ऑब्जेक्ट. इसमें vehicle_id और Vehicle एट्रिब्यूट शामिल होते हैं. |
| vehicle_pickup_eta | अगर इस ट्रिप को अभी वाहन को असाइन किया जाता है, तो पिकअप की जगह पर वाहन का ईटीए. |
| vehicle_pickup_distance_meter | मीटर में, वाहन और नई ट्रिप की पिकअप की जगह के बीच की दूरी. |
| vehicle_pickup_straight_line_distance_meter | मीटर में, वाहन और नई ट्रिप की पिकअप की जगह के बीच सीधी लाइन की दूरी. |
| vehicle_dropoff_eta | अगर इस ट्रिप को अभी वाहन को असाइन किया जाता है, तो ड्रॉप-ऑफ़ की जगह पर वाहन का ईटीए. |
| vehicle_trips_waypoints | बचे हुए वेपॉइंट की सूची. इसमें, फ़िलहाल वाहन को असाइन की गई चालू ट्रिप के लिए, पिकअप और ड्रॉप-ऑफ़ पॉइंट शामिल होते हैं. |
| vehicle_match_type | वाहन की ट्रिप का टाइप. यह EXCLUSIVE, BACK_TO_BACK, CARPOOL या CARPOOL_BACK_TO_BACK हो सकता है. |
VehicleMatch के सभी फ़ील्ड की सूची देखने के लिए, ये लेख देखें:
VehicleMatch message(gRPC)VehicleMatch resource(REST)
फ़िल्टर क्वेरी का इस्तेमाल करना
SearchVehicles और ListVehicles, फ़िल्टर क्वेरी का इस्तेमाल करके, वाहन के एट्रिब्यूट के आधार पर फ़िल्टर करने की सुविधा देते हैं.
फ़िल्टर क्वेरी से, सिर्फ़ वाहनों के कस्टम एट्रिब्यूट के आधार पर फ़िल्टर किया जा सकता है. इसका इस्तेमाल अन्य फ़ील्ड के लिए नहीं किया जा सकता. जब इसका इस्तेमाल, खोज में अन्य फ़ील्ड के मानदंड के साथ किया जाता है, जैसे कि minimum_capacity या vehicle_types, तो फ़िल्टर क्वेरी, AND क्लॉज़ के तौर पर काम करती है.
उदाहरण के लिए, अगर आपने ऐसे वाहन की खोज की है जिसकी कम से कम क्षमता 6 है और आपने attributes को फ़िल्टर किया है, जैसे कि पालतू जानवरों के साथ यात्रा करने की अनुमति, तो आपके मानदंड के हिसाब से सिर्फ़ वे वाहन दिखेंगे जिनमें पालतू जानवरों के साथ यात्रा करने की अनुमति है और जिनमें कम से कम 6 यात्री बैठ सकते हैं.
फ़िल्टर क्वेरी के सिंटैक्स के उदाहरण देखने के लिए, AIP-160 देखें. वाहन के एट्रिब्यूट बनाने के बारे में जानकारी के लिए, वाहन के एट्रिब्यूट का फ़ील्ड देखें. यह जानकारी आपको वाहन के फ़ील्ड अपडेट करना गाइड में मिलेगी.
SearchVehicles का उदाहरण
यहां दिए गए उदाहरण में, SearchVehicles API का इस्तेमाल करके,
Java gRPC लाइब्रेरी का इस्तेमाल करने का तरीका बताया गया है. जिन भाषाओं में सुविधा उपलब्ध है उनकी पूरी सूची देखने के लिए, ऑन-डिमांड ट्रिप सेवाओं के लिए क्लाइंट लाइब्रेरी देखें.
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.