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

Mobility की ऑन-डिमांड यात्रा सेवा के तहत, SearchVehicles तरीके का इस्तेमाल करके आस-पास मौजूद वाहन ढूंढे जा सकते हैं.

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

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

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 ज़रूरी है. एक्सक्लूज़िव (हर ड्राइवर के लिए एक बार में एक चालू यात्रा) या शेयर किया गया (हर ड्राइवर के लिए एक बार में एक या उससे ज़्यादा यात्राएं).
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. वाहन खोजते समय लागू करने के लिए फ़िल्टर क्वेरी.

SearchVehicleRequest फ़ील्ड का पूरा सेट देखने के लिए, रेफ़रंस दस्तावेज़ देखें.

SearchVehiclesRequest की स्थितियां

इस सेक्शन में, SearchVehiclesRequest बनाने का तरीका बताया गया है.

उदाहरण के लिए, मान लें कि किसी ग्राहक को RestaurantX से पिक अप करना है और आपके पास चार वाहन हैं:

  • पहला वाहन: RestaurantX से 3500 मीटर दूर.
  • दूसरा वाहन: RestaurantX से 100 मीटर की दूरी पर है. यह वाहन, A और B जगहों से यात्रियों को पिकअप और छोड़ने के लिए, एक सक्रिय यात्रा पर है.
  • तीसरा वाहन: RestaurantX से 200 मीटर दूर है. इसमें एक व्यक्ति को बहुत दूर छोड़ना है.
  • चौथा वाहन: 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 फ़ील्ड की पूरी सूची के लिए, यह देखें:

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

SearchVehicles और ListVehicles, फ़िल्टर क्वेरी का इस्तेमाल करके, वाहन की विशेषताओं के हिसाब से फ़िल्टर करने की सुविधा देते हैं.

फ़िल्टर क्वेरी का इस्तेमाल, सिर्फ़ वाहनों के लिए कस्टम एट्रिब्यूट पर फ़िल्टर करने के लिए किया जा सकता है. साथ ही, इसका इस्तेमाल अन्य फ़ील्ड के लिए नहीं किया जा सकता. जब फ़िल्टर क्वेरी का इस्तेमाल किसी ऐसी खोज में किया जाता है जिसमें minimum_capacity या vehicle_types जैसे अन्य फ़ील्ड की शर्तें शामिल होती हैं, तो यह AND क्लॉज़ के तौर पर काम करती है.

उदाहरण के लिए, अगर आपने कम से कम छह लोगों के लिए वाहन खोजा है और पालतू जानवरों के साथ यात्रा करने की सुविधा वाले attributes को फ़िल्टर किया है, तो आपको सिर्फ़ ऐसे वाहन दिखेंगे जिनमें पालतू जानवरों के साथ यात्रा की जा सकती है और जिनमें कम से कम छह लोग बैठ सकते हैं.

फ़िल्टर क्वेरी सिंटैक्स के उदाहरणों के लिए, AIP-160 देखें. वाहन के एट्रिब्यूट बनाने के बारे में जानकारी के लिए, वाहन के फ़ील्ड अपडेट करें गाइड में वाहन के एट्रिब्यूट फ़ील्ड देखें.

SearchVehicles का उदाहरण

नीचे दिए गए उदाहरण में, Java gRPC लाइब्रेरी का इस्तेमाल करके, SearchVehicles API का इस्तेमाल करने का तरीका बताया गया है.

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.

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