गाड़ियां खोजें

Mobility on-demand trip service के तहत, SearchVehicles तरीके का इस्तेमाल करके आस-पास मौजूद वाहन ढूंढे जा सकते हैं.

SearchVehicles तरीके की मदद से, उपभोक्ता के मोबाइल ऐप्लिकेशन में आस-पास मौजूद ऐसे वाहन ढूंढे जा सकते हैं जो किसी खास राइड या डिलीवरी के अनुरोध के लिए सबसे सही हों. SearchVehicles एपीआई, उन वाहनों की रैंक के हिसाब से सूची दिखाता है जिनके एट्रिब्यूट, अनुरोध की गई यात्रा के एट्रिब्यूट से मैच करते हैं. रैंकिंग को ईटीए, दूरी या पिकअप पॉइंट से सीधी दूरी के हिसाब से क्रम में लगाया जाता है.

खोज से जुड़े एट्रिब्यूट वाहन की विशेषताएं
  • पिकअप और ड्रॉप-ऑफ़ की जगहें
  • अनुरोध किए गए वाहन और यात्रा के टाइप
  • ज़रूरी कपैसिटी
  • मैच करने के लिए ज़रूरी अन्य एट्रिब्यूट
  • वाहन की आखिरी जगह की जानकारी
  • वाहन की स्थिति, टाइप या क्षमता
  • अन्य कस्टम एट्रिब्यूट

SearchVehicles वाला तरीका इस्तेमाल करना

SearchVehicles का इस्तेमाल करने के लिए, यह सामान्य तरीका अपनाएं:

  1. असाइन की जाने वाली यात्रा के आधार पर, SearchVehiclesRequest बनाएं.
  2. बनाए गए अनुरोध के साथ, SearchVehicles एपीआई (vehicleService.searchVehicles) को कॉल करें.
  3. एपीआई से मिले 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 ज़रूरी है. इनमें से किसी एक के हिसाब से वाहनों को क्रम से लगाएं:
  • PICKUP_POINT_ETA, पिकअप पॉइंट पर वाहन का ईटीए.
  • PICKUP_POINT_DISTANCE, वाहन और पिकअप पॉइंट के बीच की दूरी.
  • DROPOFF_POINT_ETA, ड्रॉप-ऑफ़ पॉइंट पर यात्रा पूरी करने के लिए, वाहन का ईटीए.
  • PICKUP_POINT_STRAIGHT_DISTANCE, वाहन और पिकअप पॉइंट के बीच की सीधी दूरी (रास्ते में नहीं).
सोलर पैनलों की संख्या ज़रूरी है. नतीजों में ज़्यादा से ज़्यादा 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 फ़ील्ड की पूरी सूची देखने के लिए, यहां जाएं:

फ़िल्टर क्वेरी का इस्तेमाल करना

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.

आगे क्या करना है