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

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

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

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

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

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

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

रैंकिंग को आपके चुने हुए ईटीए, दूरी या पिक अप पॉइंट से सीधी लाइन की दूरी के हिसाब से क्रम में लगाया जाता है.

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

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

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

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

SearchVehiclesRequest फ़ील्ड

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

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

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

SearchVehiclesRequest के उदाहरण

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

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

  • गाड़ी 1, रेस्टोरेंटX से 3,500 मीटर दूर है.
  • वाहन 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 में, दिए गए ऑर्डर_बाय एट्रिब्यूट के हिसाब से रैंक किया जाता है. हर VehicleMatch इकाई में ये फ़ील्ड होते हैं:

फ़ील्ड ब्यौरा
गाड़ी Vehicle ऑब्जेक्ट, जिसमेंvehicle_id और Vehicle एट्रिब्यूट शामिल हैं.
vehicle_pickup_eta नए टास्क को पिकअप करने की जगह पर वाहन का 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.