मांग के हिसाब से यात्रा की सुविधा के तहत, SearchVehicles तरीके का इस्तेमाल करके, आस-पास मौजूद वाहन ढूंढे जा सकते हैं.
SearchVehicles तरीके का इस्तेमाल करके, अपने उपभोक्ता मोबाइल ऐप्लिकेशन में आस-पास उपलब्ध ऐसे वाहन ढूंढे जा सकते हैं जो किसी खास राइड या डिलीवरी के अनुरोध के लिए सबसे सही हों. SearchVehicles एपीआई, रैंक के हिसाब से वाहनों की लिस्ट दिखाता है. इन वाहनों के एट्रिब्यूट, यात्रा के लिए अनुरोध किए गए एट्रिब्यूट से मेल खाते हैं. रैंकिंग, पिकअप पॉइंट से दूरी, ईटीए या सीधी दूरी के हिसाब से तय होती है.
| खोज से जुड़े एट्रिब्यूट | वाहन के एट्रिब्यूट |
|---|---|
|
|
SearchVehicles तरीके का इस्तेमाल करना
SearchVehicles का इस्तेमाल करने के लिए, यह सामान्य तरीका अपनाएं:
- असाइन की जाने वाली यात्रा के आधार पर,
SearchVehiclesRequestबनाएं. - बनाए गए अनुरोध के साथ,
SearchVehiclesएपीआई (vehicleService.searchVehicles) को कॉल करें. - API से मिले
SearchVehicleResponseको प्रोसेस करें.
SearchVehiclesRequest फ़ील्ड
SearchVehiclesRequest बनाने के लिए, इन ज़रूरी एट्रिब्यूट फ़ील्ड का इस्तेमाल करें:
| फ़ील्ड | ब्यौरा |
|---|---|
| माता-पिता | ज़रूरी है. यह providers/{provider} फ़ॉर्मैट में होना चाहिए. 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 के बीच होनी चाहिए. |
| फ़िल्टर | Optional. वाहन खोजते समय लागू करने के लिए फ़िल्टर क्वेरी. |
| maximum_staleness | Optional. इससे, खोज के नतीजों में सिर्फ़ वे वाहन दिखते हैं जिन्होंने तय की गई समयावधि के अंदर, Fleet Engine को अपनी डिवाइस की जगह की जानकारी का अपडेट भेजे हैं. इस फ़ील्ड को सेट न करने पर, सर्वर पांच मिनट की डिफ़ॉल्ट वैल्यू का इस्तेमाल करता है. |
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
Returns Vehicle 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 क्लॉज़ के तौर पर काम करती है.
उदाहरण के लिए, अगर आपको कम से कम छह लोगों के बैठने की क्षमता वाला वाहन खोजना है और आपने attributes जैसे कि पालतू जानवरों को साथ ले जाने की अनुमति है वाला फ़िल्टर लगाया है, तो आपको सिर्फ़ ऐसे वाहन दिखेंगे जिनमें पालतू जानवरों को साथ ले जाने की अनुमति है और जिनमें कम से कम छह लोग बैठ सकते हैं.
फ़िल्टर क्वेरी के सिंटैक्स के बारे में जानने के लिए, AIP-160 देखें. वाहन के एट्रिब्यूट बनाने के बारे में जानकारी के लिए, वाहन के फ़ील्ड अपडेट करें गाइड में वाहन के एट्रिब्यूट फ़ील्ड देखें.
SearchVehicles का उदाहरण
इस उदाहरण में, Java gRPC लाइब्रेरी का इस्तेमाल करके, SearchVehicles एपीआई को इस्तेमाल करने का तरीका दिखाया गया है. इस सुविधा के साथ काम करने वाली भाषाओं की पूरी सूची देखने के लिए, मांग पर यात्रा की सेवाएं देने वाले ऐप्लिकेशन के लिए क्लाइंट लाइब्रेरी लेख पढ़ें.
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.