Route Optimization API का मकसद, वाहनों के बेड़े के लिए अलग-अलग जगहों पर जाने के लिए रूट प्लान करना है. OptimizeToursRequest ऑब्जेक्ट, इन वाहनों और जगहों की प्रॉपर्टी के बारे में बताता है. साथ ही, यह हर एंडपॉइंट के अनुरोध के मुख्य हिस्से का मुख्य स्ट्रक्चर होता है.
OptimizeToursRequest ऑब्जेक्ट का बुनियादी स्ट्रक्चर इस तरह का होता है:
modelफ़ील्ड मेंShipmentModelमैसेज होता है. इसमें दो मुख्य फ़ील्ड होते हैं:
इस दस्तावेज़ में, मैसेज के इन टाइप के बारे में बताया गया है:
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मैसेज में, असल ज़िंदगी में शिपमेंट या सेवा की पूरी जानकारी होती है.- सभी
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मैसेज में, असल ज़िंदगी में इस्तेमाल होने वाले वाहन की पूरी जानकारी होती है.- सभी
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" } }