डिलीवरी वाहन की सूची बनाएं

इस दस्तावेज़ में, डिलीवरी करने वाले वाहनों की लिस्टिंग करने का तरीका बताया गया है.

एनवायरमेंट और सीमाएं

डिलीवरी करने वाले वाहनों की लिस्टिंग, सर्वर या ब्राउज़र एनवायरमेंट से की जा सकती है. Driver SDK, डिलीवरी करने वाले वाहनों की लिस्टिंग की सुविधा नहीं देता.

डिलीवरी करने वाले वाहनों की लिस्टिंग के अनुरोध से, इन वाहनों का ऐक्सेस मिलता है. यह सुविधा सिर्फ़ भरोसेमंद उपयोगकर्ताओं के लिए है. डिलीवरी करने वाले वाहनों की लिस्टिंग के अनुरोध करते समय, Delivery Fleet Reader या Fleet Engine Delivery Admin टोकन का इस्तेमाल करें.

डिलीवरी करने वाले वाहनों की लिस्टिंग में, इन फ़ील्ड को शामिल नहीं किया जाता. ऐसा इसलिए, क्योंकि इनसे जवाब का साइज़ बढ़ जाता है:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

इस्तेमाल

एट्रिब्यूट फ़िल्टर और व्यूपोर्ट की सीमाओं के हिसाब से, वाहनों की लिस्टिंग की जा सकती है. अगर कोई फ़िल्टर या व्यूपोर्ट तय नहीं किया जाता है, तो जवाब में डिलीवरी करने वाले सभी वाहन शामिल होते हैं.

एट्रिब्यूट फ़िल्टर के साथ लिस्टिंग करना

डिलीवरी करने वाले वाहनों की लिस्टिंग, उनके attributes प्रॉपर्टी का इस्तेमाल करके फ़िल्टर के हिसाब से की जा सकती है. उदाहरण के लिए, my_key कुंजी और my_value वैल्यू वाले एट्रिब्यूट के लिए क्वेरी करने के लिए, attributes.my_key = my_value का इस्तेमाल करें. एक से ज़्यादा एट्रिब्यूट के लिए क्वेरी करने के लिए, लॉजिकल AND और OR ऑपरेटर का इस्तेमाल करके क्वेरी को जोड़ें . जैसे, attributes.key1 = value1 AND attributes.key2 = value2. फ़िल्टर क्वेरी सिंटैक्स के बारे में पूरी जानकारी के लिए, AIP-160 देखें. अगर फ़िल्टर को व्यूपोर्ट की सीमाओं के साथ जोड़ा जाता है, तो फ़िल्टर, व्यूपोर्ट की सीमा के लिए AND ऑपरेटर के तौर पर काम करता है. ज़्यादा जानकारी के लिए, वाहन के एट्रिब्यूट फ़िल्टर की क्वेरी देखें.

व्यूपोर्ट की सीमाओं के साथ लिस्टिंग करना

viewport अनुरोध पैरामीटर का इस्तेमाल करके, लिस्ट किए गए डिलीवरी करने वाले वाहनों को जगह के हिसाब से फ़िल्टर किया जा सकता है. viewport अनुरोध पैरामीटर, दो बाउंडिंग कोऑर्डिनेट का इस्तेमाल करके व्यूपोर्ट तय करता है: high (पूर्वोत्तर) और low (दक्षिण-पश्चिम) अक्षांश और देशांतर कोऑर्डिनेट का पेयर. अगर अनुरोध में ऐसा अक्षांश शामिल है जो भौगोलिक तौर पर, कम अक्षांश से कम है, तो अनुरोधों को अस्वीकार कर दिया जाता है.

लिस्टिंग के जवाब

डिलीवरी करने वाले वाहनों की लिस्टिंग, डिफ़ॉल्ट रूप से पेज के सही साइज़ के हिसाब से की जाती है. अगर पेज का साइज़ तय किया जाता है, तो अनुरोध में सिर्फ़ तय की गई सीमा के हिसाब से वाहन दिखते हैं या उससे कम वाहन दिखते हैं. अगर अनुरोध किए गए पेज का साइज़, तय की गई ज़्यादा से ज़्यादा वैल्यू से ज़्यादा है, तो तय की गई ज़्यादा से ज़्यादा वैल्यू का इस्तेमाल किया जाता है. पेज के डिफ़ॉल्ट और ज़्यादा से ज़्यादा साइज़, दोनों में 100 वाहन शामिल किए जा सकते हैं.

डिलीवरी करने वाले वाहनों की लिस्टिंग में, नतीजों का अगला पेज पढ़ने के लिए टोकन शामिल किया जा सकता है. किसी जवाब में पेज टोकन सिर्फ़ तब मौजूद होता है, जब डिलीवरी करने वाले वाहनों के ज़्यादा पेज वापस पाने के लिए उपलब्ध हों. टास्क का अगला पेज वापस पाने के लिए, पेज टोकन का इस्तेमाल ऐसे अनुरोध के साथ करें जो पिछले अनुरोध जैसा ही हो.

वाहनों की लिस्टिंग के उदाहरण

किसी खास एट्रिब्यूट के साथ, किसी खास इलाके में डिलीवरी करने वाले वाहनों की लिस्टिंग करने के लिए, Java gRPC लाइब्रेरी या REST का इस्तेमाल किया जा सकता है. सही जवाब खाली भी हो सकता है. ऐसा होने पर, इसका मतलब है कि तय किए गए व्यूपोर्ट में, तय किए गए एट्रिब्यूट वाले कोई भी वाहन मौजूद नहीं हैं. जिन भाषाओं में सुविधा उपलब्ध है उनकी पूरी सूची देखने के लिए, शेड्यूल किए गए टास्क की सेवाओं के लिए क्लाइंट लाइब्रेरी देखें.

Java


  static final String PROJECT_ID = "my-delivery-co-gcp-project";

  DeliveryServiceBlockingStub deliveryService =
    DeliveryServiceGrpc.newBlockingStub(channel);

  // Tasks request
  String parent = "providers/" + PROJECT_ID;
  ListDeliveryVehiclesRequest listDeliveryVehiclesRequest =
    ListDeliveryVehiclesRequest.newBuilder()  // No need for the header
        .setParent(parent)
        .setViewport(
              Viewport.newBuilder()
                .setHigh(LatLng.newBuilder()
                    .setLatitude(37.45)
                    .setLongitude(-122.06)
                    .build())
                .setLow(LatLng.newBuilder()
                    .setLatitude(37.41)
                    .setLongitude(-122.11)
                    .build())
        .setFilter("attributes.my_key = my_value")
        .build();

  try {
    ListDeliveryVehiclesResponse listDeliveryVehiclesResponse =
        deliveryService.listDeliveryVehicles(listDeliveryVehiclesRequest);
  } catch (StatusRuntimeException e) {
    Status s = e.getStatus();
    switch (s.getCode()) {
        case NOT_FOUND:
            break;

        case PERMISSION_DENIED:
            break;
    }
    return;
  }

REST

  # HTTP request
  html GET https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles

  # Request with a filter
  # Request sets JWT, PROJECT_ID, and VEHICLE_ID in the local environment
  curl -H "Authorization: Bearer ${JWT}" \
    "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles?filter=attributes.my_key%20%3D%20my_value%20&viewport.high.latitude=37.45&viewport.high.longitude=-122.06&viewport.low.latitude=37.41&viewport.low.longitude=-122.11"

अगर लुकअप सही तरीके से काम करता है, तो जवाब के मुख्य हिस्से में यह स्ट्रक्चर शामिल होता है:

  // JSON representation
  {
    "deliveryVehicles": [
      {
        object (DeliveryVehicle)
      }
    ],
    "nextPageToken": string,
    "totalSize": integer
  }

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