अनुरोध वाला मैसेज बनाएं

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

  • मॉडल, पूरे अनुरोध के लिए सेटिंग और पाबंदियों को कैप्चर करता है. इसमें Shipments और Vehicles, दोनों शामिल हैं.
  • शिपमेंट से उन टास्क या असल शिपमेंट के बारे में पता चलता है जिनमें पिकअप और डिलीवरी VisitRequest शामिल हैं. शिपमेंट के लिए स्थानीय सेटिंग और पाबंदियां होती हैं.
  • वाहन से वाहन, ड्राइवर या कर्मचारी का पता चलता है. वाहनों के लिए भी स्थानीय सेटिंग और पाबंदियां होती हैं.

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

हर तरह के मैसेज के बारे में पूरी जानकारी के लिए, ShipmentModel (REST, gRPC), Shipment (REST, gRPC), और Vehicle (REST, gRPC) मैसेज के लिए रेफ़रंस दस्तावेज़ देखें.

OptimizeToursRequest प्रॉपर्टी

टॉप-लेवल OptimizeToursRequest मैसेज (REST, gRPC) की कुछ सामान्य तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • searchMode से पता चलता है कि तय की गई सीमाओं को पूरा करने वाला पहला समाधान दिखाना है या तय की गई समयसीमा के अंदर सबसे अच्छा समाधान ढूंढना है.
  • considerRoadTraffic यह तय करता है कि रूटिंग और ईटीए का अनुमान लगाने के लिए, लाइव ट्रैफ़िक का इस्तेमाल किया जाए या नहीं.
  • populateTransitionPolylines से यह तय होता है कि जवाब में रास्ते की पॉलीलाइन और रास्ते के टोकन दिखाए जाएं या नहीं.

मॉडल प्रॉपर्टी

ShipmentModel मैसेज (REST, gRPC) की कुछ सामान्य तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • globalStartTime, सभी वाहनों और शिपमेंट के लिए, रास्तों के शुरू होने का सबसे कम समय दिखाता है. इस समय से पहले, किसी भी वाहन का पहला ट्रांज़िशन और शिपमेंट शुरू नहीं किया जा सकता.
  • globalEndTime से, सभी वाहनों और शिपमेंट के लिए, रूट के खत्म होने का सबसे नया समय पता चलता है. इस समय से पहले, असाइन की गई सभी शिपमेंट और ट्रांज़िशन की प्रोसेस पूरी हो जानी चाहिए.

शिपमेंट की प्रॉपर्टी

Shipment मैसेज (REST, gRPC) की कुछ सामान्य तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • pickups[] और deliveries[] से पता चलता है कि शिपमेंट को कहां से पाया या कहां छोड़ा जा सकता है. pickups[] और deliveries[], दोनों प्रॉपर्टी VisitRequest मैसेज (REST, gRPC) का इस्तेमाल करती हैं.
  • loadDemands से पता चलता है कि किसी वाहन को शिपमेंट पूरा करने के लिए, कितना लोड ले जाना है. वाहनों की संबंधित load_limits (REST, gRPC) एट्रिब्यूट की वैल्यू से पता चलता है कि एक बार में एक वाहन में कितना लोड हो सकता है. लोड की मांग और सीमाएं में लोड के बारे में ज़्यादा पढ़ें.
  • penalty_cost, शिपमेंट छोड़ने पर होने वाली लागत दिखाता है. लागत मॉडल पैरामीटर में, लागत के बारे में ज़्यादा पढ़ें.

वाहन की प्रॉपर्टी

Vehicle मैसेज (REST, gRPC) की कुछ सामान्य तौर पर इस्तेमाल की जाने वाली प्रॉपर्टी में ये शामिल हैं:

  • startLocation से पता चलता है कि वाहन को अपना रास्ता कहां से शुरू करना है. इस प्रॉपर्टी का इस्तेमाल करना ज़रूरी नहीं है. अगर यह जानकारी नहीं दी जाती है, तो वाहन का रूट, उसके लिए असाइन किए गए पहले शिपमेंट की जगह से शुरू होता है.
  • endLocation से पता चलता है कि वाहन को अपना रास्ता कहां खत्म करना है. इस प्रॉपर्टी का इस्तेमाल करना ज़रूरी नहीं है. अगर इस बारे में नहीं बताया जाता है, तो वाहन का रास्ता, आखिरी शिपमेंट की जगह पर खत्म होता है.
  • startTimeWindows[] से पता चलता है कि वाहन अपना रास्ता कब शुरू कर सकता है. इस प्रॉपर्टी का इस्तेमाल करना ज़रूरी नहीं है.
  • endTimeWindows[] से पता चलता है कि कोई वाहन अपना रास्ता कब शुरू और कब खत्म कर सकता है. दोनों प्रॉपर्टी देना ज़रूरी नहीं है.
  • loadLimits, शिपमेंट के लोड की मांगों को पूरा करने के लिए, वाहन की उपलब्ध क्षमता दिखाता है. लोड डिमांड और सीमाओं में, लोड डिमांड और सीमाओं के बारे में ज़्यादा पढ़ें.

JSON फ़ॉर्मैट में अनुरोध का पूरा उदाहरण कुछ ऐसा दिखता है:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

OptimizeTours और BatchOptimizeTours, दोनों ऊपर दिए गए उदाहरण की तरह अनुरोध मैसेज का इस्तेमाल करते हैं. हालांकि, दोनों अलग-अलग तरीकों से ऐसा करते हैं. रास्ते के ऑप्टिमाइज़ेशन का अनुरोध करने से पहले, इन दोनों तरीकों के बीच का अंतर समझना ज़रूरी है:

OptimizeTours और BatchOptimizeTours की तुलना करना