जैसा कि रूट ऑप्टिमाइज़ेशन की खास जानकारी वाले लेख में बताया गया है, एक बुनियादी अनुरोध में ज़रूरी इकाइयों के तौर पर मॉडल, शिपमेंट, और वाहन शामिल होते हैं:
- मॉडल से पूरे अनुरोध के लिए सेटिंग और पाबंदियां कैप्चर की जाती हैं. इसमें
Shipments
औरVehicles
, दोनों शामिल होते हैं. - शिपमेंट ऐसे टास्क या असल शिपमेंट को दिखाते हैं जिनमें पिकअप और डिलीवरी
VisitRequest
शामिल हैं. शिपमेंट के लिए स्थानीय सेटिंग और शर्तें तय होती हैं. - वाहन: इनमें वाहन, ड्राइवर या निजी वाहन शामिल होते हैं. वाहनों में, लोकल सेटिंग और पाबंदियां भी होती हैं.
हर इकाई की प्रॉपर्टी, ऑप्टिमाइज़ेशन से जुड़ी किसी समस्या के हिस्से के बारे में ज़्यादा जानकारी देती हैं. पूरे मॉडल के लिए, पाबंदियां सभी जहाज़ों और वाहनों पर लागू होती हैं, जबकि शिपमेंट या वाहनों पर तय की गई पाबंदियां और प्रॉपर्टी, सिर्फ़ एक शिपमेंट या वाहन के लिए लागू होती हैं.
हर तरह के मैसेज के पूरे दस्तावेज़ देखने के लिए, ShipmentModel
(REST, gRPC), Shipment
(REST, gRPC), और Vehicle
(REST, gRPC) वाले मैसेज के रेफ़रंस दस्तावेज़ देखें.
OptimzeToursRequest
प्रॉपर्टी
टॉप लेवल 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
दोनों, ऊपर दिए गए उदाहरण की तरह ही अनुरोध वाले मैसेज का इस्तेमाल करते हैं. हालांकि, ये अलग-अलग तरीकों से होते हैं. रूट ऑप्टिमाइज़ेशन का अनुरोध करने से पहले, दोनों तरीकों के बीच के अंतर को समझना ज़रूरी है: