आस-पास के ड्राइवर खोजे जा रहे हैं

रूट प्लानिंग और डिस्पैच की सुविधा की मदद से, SearchVehicles एपीआई की मदद से आस-पास के ड्राइवर ढूंढे जा सकते हैं. यह मांग पर की जाने वाली राइड और डिलीवरी की सुविधा के हिस्से के तौर पर काम करता है.

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

टास्क एट्रिब्यूट में ये शामिल हो सकते हैं:

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

वाहन की विशेषताओं में ये शामिल हो सकते हैं:

  • किसी वाहन की आखिरी जगह की जानकारी
  • वाहन की स्थिति, टाइप या कपैसिटी
  • अन्य कस्टम एट्रिब्यूट

रैंकिंग, पिक अप पॉइंट से ETA, दूरी या सीधी लाइन की दूरी के हिसाब से तय होती है.

ध्यान दें कि SearchVehicles API का इस्तेमाल करने के लिए, आपके पास Fleet Engine सेवा के सुपर उपयोगकर्ता या उपभोक्ता SDK टूल के उपयोगकर्ता के खास अधिकार होने चाहिए. ज़्यादा जानकारी के लिए, पुष्टि करना और अनुमति देना देखें.

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

SearchVehicles एपीआई का इस्तेमाल करने के लिए:

  • असाइन किए जाने वाले टास्क के आधार पर एक SearchVehiclesRequest बनाएं.
  • बनाए गए अनुरोध के साथ SearchVehicles एपीआई (vehicleService.searchVehicles) को कॉल करें.
  • एपीआई से मिले SearchVehicleResponse को प्रोसेस करें.

SearchVehiclesRequest फ़ील्ड

SearchVehiclesRequest बनाने के लिए, नीचे दिए गए ज़रूरी एट्रिब्यूट फ़ील्ड का इस्तेमाल करें:

फ़ील्ड ब्यौरा
parent ज़रूरी है. प्रोवाइडर/{provider} के फ़ॉर्मैट में होना चाहिए. सेवा देने वाली कंपनी को उस Google Cloud प्रोजेक्ट का प्रोजेक्ट आईडी (उदाहरण के लिए, sample-cloud-project) देना चाहिए, जिसके सेवा खाते में यह कॉल किया जा रहा है.
vehicle_types ज़रूरी है. अनुरोध किए गए वाहन के टाइप, या तो AUTO, TWO_WHEELER, TAXI, TRUCK, BICYCLE या PEDESTRIAN.
trip_types ज़रूरी है. खास (हर ड्राइवर के लिए एक बार में एक चालू यात्रा) या शेयर की गई (हर ड्राइवर के लिए एक बार में एक या कई यात्राएं).
minimum_capacity ज़रूरी है. किसी नए काम के लिए, यात्रियों या डिलीवरी के लिए वाहन की कम से कम क्षमता.
pickup_point ज़रूरी है. अक्षांश/देशांतर निर्देशांक में टास्क को पिकअप करने की जगह.
dropoff_point ज़रूरी नहीं. अक्षांश/देशांतर निर्देशांक में टास्क को छोड़ने की जगह. अगर traffic_types में TripType.SHARED है, तो फ़ील्ड ज़रूरी है.
pickup_radius_meters ज़रूरी है. पिकअप पॉइंट से वाहन की खोज वाली जगह का दायरा मीटर में.
order_by ज़रूरी है. यहां बताए गए तरीके से वाहन ऑर्डर करें:
  • PICKUP_POINT_ETA, पिकअप पॉइंट पर वाहन का ETA.
  • PICKUP_POINT_DISTANCE, वाहन और पिकअप पॉइंट के बीच की दूरी.
  • ड्रॉप-ऑफ़ पॉइंट पर यात्रा पूरी करने के लिए, वाहन का ETA, DROPOFF_POINT_ETA.
  • PICKUP_POINT_STRAIGHT_DISTANCE, वाहन और पिकअप पॉइंट के बीच सीधी-लाइन की दूरी (रास्ते में नहीं).
सोलर पैनलों की संख्या ज़रूरी है. 1 से 50 के बीच, वापस किए जाने वाले वाहनों की ज़्यादा से ज़्यादा संख्या.

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

SearchVehiclesRequest के उदाहरण

इस सेक्शन में SearchVehiclesRequest बनाने के उदाहरण दिए गए हैं.

उदाहरण के लिए, मान लें कि आपके पास RestaurantX और चार गाड़ियों को असाइन करने के लिए एक पिकअप टास्क है:

  • वाहन 1, जो RestaurantX से 3500 मीटर दूर है.
  • वाहन 2, जो RestaurantX से 100 मीटर दूर है. यहां A और B जगहों से पिकअप और ड्रॉप-ऑफ़ के साथ ही चालू यात्रा की जा रही है.
  • वाहन 3, जो RestaurantX से 200 मीटर दूर है और यहां से बहुत दूर एक ड्रॉप-ऑफ़ बाकी है.
  • वाहन 4, जो RestaurantX से 1,000 मीटर दूर है.

यह SearchVehiclesRequest गाड़ी 4 दिखाता है:

Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA

यह SearchVehiclesRequest, कार 3 और 4 दिखाता है:

Pickup at RestaurantX, radius = 1200m, order by PICKUP_POINT_ETA, is_back_to_back enabled

यह SearchVehiclesRequest गाड़ी 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 एट्रिब्यूट शामिल हैं.
vehicle_pickup_eta नए टास्क के पिकअप की जगह पर वाहन का ETA. यह ड्राइविंग का ईटीए है.
vehicle_pickup_distance_meter नए टास्क के लिए, वाहन और पिक अप की जगह के बीच की दूरी मीटर में.
vehicle_pickup_straight_line_distance_meter नए टास्क के लिए, वाहन और पिक अप करने की जगह के बीच सीधी लाइन की दूरी मीटर में.
vehicle_dropoff_eta नए टास्क को पिकअप करने की जगह पर, वाहन के ETA का टाइमस्टैंप. ध्यान रखें कि ETA, ड्राइविंग ईटीए होता है.
vehicle_trips_waypoints वाहन को फ़िलहाल असाइन की गई चालू यात्राओं के लिए, बचे हुए वेपॉइंट की सूची. इसमें पिकअप और ड्रॉप-ऑफ़ पॉइंट भी शामिल हैं.
vehicle_match_type वाहन की यात्रा का प्रकार, EXCLUSIVE, BACK_TO_BACK, CARPOOL या CARPOOL_BACK_TO_BACK.

SearchVehicles का उदाहरण

नीचे दिए गए उदाहरण में, 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.