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

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

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

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

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

डिलीवरी के लिए इस्तेमाल होने वाले वाहनों की सूची में, इन फ़ील्ड को हटा दिया गया है. ऐसा इसलिए किया गया है, क्योंकि इनसे रिस्पॉन्स के साइज़ पर असर पड़ता है:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

इस्तेमाल

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

एट्रिब्यूट फ़िल्टर वाली सूची

डिलीवरी वाहनों को उनकी attributes प्रॉपर्टी का इस्तेमाल करके, फ़िल्टर के हिसाब से लिस्ट किया जा सकता है. उदाहरण के लिए, my_key कुंजी और my_value वैल्यू वाले एट्रिब्यूट के लिए क्वेरी करने के लिए, attributes.my_key = my_value का इस्तेमाल करें. एक से ज़्यादा एट्रिब्यूट के बारे में क्वेरी करने के लिए, attributes.key1 = value1 AND attributes.key2 = value2 की तरह लॉजिकल AND और OR ऑपरेटर का इस्तेमाल करके क्वेरी जोड़ें. फ़िल्टर क्वेरी के सिंटैक्स की पूरी जानकारी के लिए, 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;
  }

आराम का समय

  # 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
  }

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