बुनियादी स्ट्रक्चर (ShipmentModel, Shipment, और Vehicle)

ShipmentModel में, `Shipment` मैसेज टाइप वाला एक `shipments` ऑब्जेक्ट और `Vehicle` मैसेज टाइप वाला एक `vehicles` ऑब्जेक्ट होता है.

Route Optimization API का मकसद, वाहनों के बेड़े के लिए अलग-अलग जगहों पर जाने के लिए रूट प्लान करना है. OptimizeToursRequest ऑब्जेक्ट, इन वाहनों और जगहों की प्रॉपर्टी के बारे में बताता है. साथ ही, यह हर एंडपॉइंट के अनुरोध के मुख्य हिस्से का मुख्य स्ट्रक्चर होता है.

OptimizeToursRequest ऑब्जेक्ट का बुनियादी स्ट्रक्चर इस तरह का होता है:

  • model फ़ील्ड में ShipmentModel मैसेज होता है. इसमें दो मुख्य फ़ील्ड होते हैं:
    • एक shipments फ़ील्ड, जिसमें एक या कई Shipment मैसेज होते हैं.
    • एक vehicles फ़ील्ड, जिसमें एक या कई Vehicle मैसेज होते हैं.

इस दस्तावेज़ में, मैसेज के इन टाइप के बारे में बताया गया है:

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

ShipmentModel

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

नीचे दी गई टेबल में, ShipmentModel की कुछ काम की प्रॉपर्टी के बारे में बताया गया है:

प्रॉपर्टी ब्यौरा
shipments और vehicles ज़रूरी ऑब्जेक्ट, जिनमें एक या कई शिपमेंट और वाहनों की जानकारी शामिल होती है.
globalStartTime और globalEndTime इससे समयसीमा के शुरू और खत्म होने का पता चलता है. इस समयसीमा के अंदर, सभी वाहनों को सभी शिपमेंट डिलीवर करने होते हैं. हालांकि, इन प्रॉपर्टी को शामिल करना ज़रूरी नहीं है, लेकिन इन्हें शामिल करने का सुझाव दिया जाता है. ऐसा इसलिए, क्योंकि ऑप्टिमाइज़र, समय की पाबंदियों का पालन करने पर सबसे अच्छा काम करता है.

ShipmentModel में मौजूद प्रॉपर्टी की पूरी सूची देखने के लिए, रेफ़रंस दस्तावेज़ देखें.

ShipmentModel उदाहरण

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

इस उदाहरण के लिए, आपके अनुरोध में ShipmentModel प्रॉपर्टी की वैल्यू ये हैं:

प्रॉपर्टी वैल्यू ब्यौरा
globalStartTime 2024-02-13T00:00:00.000Z कारोबार के खुले होने के समय के शुरू होने की तारीख और समय.
globalEndTime 2024-02-14T06:00:00.000Z कारोबार के खुले होने का समय खत्म होने की तारीख और समय.

यहां ShipmentModel मैसेज का एक कोड सैंपल दिया गया है. इसमें उदाहरण के तौर पर दी गई वैल्यू शामिल हैं.

{
  "model": {
    "shipments": [
      ...
    ],
    "vehicles": [
      ...
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

Shipment

Shipment मैसेज टाइप, किसी शिपमेंट की प्रॉपर्टी स्ट्रक्चर के बारे में बताता है. इस शिपमेंट को किसी रूट पर डिलीवर किया जा सकता है या उस रूट पर सेवा दी जा सकती है.

असल ज़िंदगी में शिपमेंट, एक `Shipment` मैसेज के बराबर होता है. यह `shipments` ऑब्जेक्ट में मौजूद होता है

जैसा कि डायग्राम में दिखाया गया है:

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

Shipment मैसेज के लिए, कम से कम एक pickups या deliveries ऑब्जेक्ट होना ज़रूरी है. इन ऑब्जेक्ट की परिभाषाएं इस तरह हैं:

  • pickups से शिपमेंट के पिकअप की जगह के बारे में पता चलता है.
  • deliveries से शिपमेंट की डिलीवरी की जगह के बारे में पता चलता है.
  • pickups और deliveries, दोनों में VisitRequest मैसेज टाइप होता है. इससे जगहों और अन्य जानकारी के बारे में पता चलता है.

यहां दी गई टेबल में, Shipment मैसेज में pickups और deliveries के कॉन्फ़िगरेशन के आधार पर, अलग-अलग स्थितियों के बारे में बताया गया है.

स्थिति ब्यौरा
सिर्फ़ pickups यह माना जाता है कि सिर्फ़ शिपमेंट इकट्ठा किया जा रहा है.
सिर्फ़ deliveries यह माना जाता है कि आपने शिपमेंट को पहले से लोड किया है या कोई सेवा दी जा रही है.
pickups और deliveries, दोनों असाइन किए गए वाहन को पहले पिकअप और फिर डिलीवरी पूरी करनी होगी. जिस वाहन से पिकअप किया गया है उसी से डिलीवरी की जा सकती है.
एक से ज़्यादा pickups या deliveries अगर किसी शिपमेंट में pickups या deliveries के लिए कई विकल्प मौजूद हैं, तो ऑप्टिमाइज़र, लागत को कम करने और पाबंदियों को पूरा करने के आधार पर, पिकअप का एक विकल्प और डिलीवरी का एक विकल्प चुनता है.

Shipment में मौजूद प्रॉपर्टी की पूरी सूची देखने के लिए, रेफ़रंस दस्तावेज़ देखें.

Shipment उदाहरण

इस उदाहरण में, आपके पास कुत्तों की देखभाल करने की सेवा है. इसमें, कुत्तों को उनके घर से पिक अप करके, देखभाल करने वाली जगह पर लाया जाता है. आपको दो कुत्तों को पिक अप करने की जगह सेट करनी है. साथ ही, उनकी डिलीवरी की जगह को अपने कारोबार की जगह पर सेट करना है:

  • पहले कुत्ते का घर सैन फ़्रांसिस्को के कॉइट टावर में है. इस जगह के निर्देशांक, अक्षांश 37.8024 और देशांतर -122.4058 हैं.
  • दूसरे कुत्ते का घर सैन फ़्रांसिस्को के साउथ सनसेट प्लेग्राउंड पार्क में है. इस जगह के निर्देशांक, अक्षांश 37.7359 और देशांतर -122.5011 हैं.
  • आपका कुत्तों की देखभाल करने वाला सेंटर, सैन फ़्रांसिस्को के मिशन डोलोरेस पार्क में है. इस जगह के निर्देशांक, अक्षांश 37.759773 और देशांतर -122.427063 हैं.

यहां Shipment मैसेज का एक कोड सैंपल दिया गया है. इसमें shipments ऑब्जेक्ट में, उदाहरण के तौर पर दिए गए निर्देशांकों के साथ दो Shipmentमैसेज टाइप शामिल हैं.

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      }
    ],
    "vehicles": [
    ...
    ]
  }
}

Vehicle

Vehicle मैसेज टाइप, किसी वाहन की प्रॉपर्टी के स्ट्रक्चर के बारे में बताता है. इससे यह तय होता है कि वह वाहन किसी रूट पर शिपमेंट डिलीवर कर सकता है या नहीं.

असल ज़िंदगी में इस्तेमाल होने वाले वाहन की जानकारी, एक `Vehicle` मैसेज के बराबर होती है. यह जानकारी, `vehicles` ऑब्जेक्ट में मौजूद होती है

जैसा कि डायग्राम में दिखाया गया है:

  • Vehicle मैसेज में, असल ज़िंदगी में इस्तेमाल होने वाले वाहन की पूरी जानकारी होती है.
  • सभी Vehicle मैसेज, vehicles फ़ील्ड में बताए जाते हैं.
  • vehicles फ़ील्ड में कई Vehicle मैसेज हैं.

नीचे दी गई टेबल में, Vehicle की कुछ काम की प्रॉपर्टी के बारे में बताया गया है.

प्रॉपर्टी ब्यौरा
startLocation और endLocation वाहन के शुरू और खत्म होने की जगह, जो ऑप्टिमाइज़ किए गए फ़ाइनल रूट का हिस्सा हैं. अगर इन्हें तय नहीं किया जाता है, तो ये डिफ़ॉल्ट रूप से शिपमेंट के पिकअप की पहली जगह और शिपमेंट की डिलीवरी की आखिरी जगह पर सेट हो जाते हैं.
costPerHour, costPerKilometer, costPerTraveledHour वाहन के हिसाब से लागत के पैरामीटर. हमारा सुझाव है कि एपीआई से ऑप्टिमाइज़ किया गया रास्ता पाने के लिए, आपके अनुरोध में कम से कम एक लागत पैरामीटर शामिल होना चाहिए. लागत के बारे में ज़्यादा जानने के लिए, लागत मॉडल का मुख्य सिद्धांत देखें.
startTimeWindows और endTimeWindows वह समयावधि तय करें जब किसी रास्ते पर वाहन चलाया जा सकता है. ये ShipmentModel में सेट की गई globalStartTime और globalEndTime की टाइम विंडो के बीच होने चाहिए. हालांकि, इस प्रॉपर्टी का इस्तेमाल करना ज़रूरी नहीं है, लेकिन इसे शामिल करने का सुझाव दिया जाता है. ऐसा इसलिए, क्योंकि ऑप्टिमाइज़र, समय की पाबंदियों का पालन करने पर सबसे अच्छा काम करता है.

Vehicle उदाहरण

इस उदाहरण में, आपके पास कुत्तों की देखभाल करने की सेवा है और आपको दिन की शुरुआत और आखिर में अपनी गाड़ी की जगह की जानकारी देनी है. साथ ही, यह भी बताना है कि गाड़ी में कितना ईंधन खर्च होता है. आपको वाहन के काम करने के घंटे बताने की ज़रूरत नहीं है. ऐसा इसलिए, क्योंकि ये घंटे, ShipmentModel ऑब्जेक्ट में मौजूद globalStartTime और globalEndTime प्रॉपर्टी में बताए गए घंटों से मेल खाते हैं.

इस उदाहरण के लिए, आपके अनुरोध में Vehicle प्रॉपर्टी की वैल्यू ये हैं:

प्रॉपर्टी वैल्यू ब्यौरा
startLocation latitude: 37.759773, longitude: -122.427063 आपके वाहन के लिए, रास्ते के शुरुआती निर्देशांक. ये कीवर्ड, सैन फ़्रांसिस्को के मिशन डोलोरेस पार्क में मौजूद आपके डॉगी डेकेयर की जगह से मैच करते हैं.
endLocation latitude: 37.759773, longitude: -122.427063 आपके वाहन के लिए, रास्ते के आखिरी निर्देशांक. ये कीवर्ड, सैन फ़्रांसिस्को के मिशन डोलोरेस पार्क में मौजूद आपके डॉगी डेकेयर की जगह से मैच करते हैं.
costPerHour 27 कुत्तों की देखभाल करने वाली गाड़ी को चलाने के लिए, ड्राइवर को कितना पेमेंट किया जाता है. ड्राइवर को हर घंटे के हिसाब से 27 डॉलर देने होते हैं.

यहां Vehicle मैसेज का एक कोड सैंपल दिया गया है. इसमें उदाहरण के तौर पर दी गई वैल्यू शामिल हैं.

{
  "model": {
    "shipments": [
    ...
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "costPerHour": 27
      }
    ]
  }
}

Vehicle में मौजूद प्रॉपर्टी की पूरी सूची देखने के लिए, रेफ़रंस दस्तावेज़ देखें.

अनुरोध का पूरा उदाहरण

यहां दिए गए कोड सैंपल में, अनुरोध का पूरा उदाहरण दिया गया है. इसमें इस दस्तावेज़ में दिखाए गए ShipmentModel, Shipment, और Vehicle के उदाहरणों को शामिल किया गया है.

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.8024,
              "longitude": -122.4058
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      },
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.7359,
              "longitude": -122.5011
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.759773,
              "longitude": -122.427063
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "endLocation": {
          "latitude": 37.759773,
          "longitude": -122.427063
        },
        "costPerHour": 27
      }
    ],
    "globalStartTime": "2024-02-13T00:00:00.000Z",
    "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}