- एचटीटीपी अनुरोध
- पाथ पैरामीटर
- अनुरोध का मुख्य हिस्सा
- जवाब का मुख्य हिस्सा
- अनुमति पाने के लिंक
- आईएएम की अनुमतियां
यह ShipmentModel
वाला OptimizeToursRequest
भेजता है और ShipmentRoute
वाला OptimizeToursResponse
दिखाता है. इन रास्तों का सेट ऐसे रास्तों का होता है जिन पर वाहनों की मदद से कुल खर्च को कम किया जाता है.
ShipmentModel
मॉडल में मुख्य रूप से ऐसे Shipment
होते हैं जिन्हें पूरा करना ज़रूरी होता है. साथ ही, इसमें ऐसे Vehicle
भी होते हैं जिनका इस्तेमाल Shipment
को ट्रांसपोर्ट करने के लिए किया जा सकता है. ShipmentRoute
, Vehicle
के लिए Shipment
असाइन करते हैं. खास तौर पर, वे हर वाहन को Visit
की एक सीरीज़ असाइन करते हैं. इसमें, Visit
किसी VisitRequest
से जुड़ा होता है, जो Shipment
के लिए पिकअप या डिलीवरी है.
इसका लक्ष्य Vehicle
के लिए ShipmentRoute
का असाइनमेंट देना है, ताकि उस कुल लागत को कम किया जा सके जहां लागत में कई कॉम्पोनेंट के बारे में ShipmentModel
में बताया गया है.
एचटीटीपी अनुरोध
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
यह यूआरएल gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.
पाथ पैरामीटर
पैरामीटर | |
---|---|
parent |
ज़रूरी है. कॉल करने के लिए, प्रोजेक्ट या जगह को टारगेट करें. फ़ॉर्मैट: * अगर कोई जगह नहीं बताई जाती है, तो कोई क्षेत्र अपने-आप चुना जाएगा. |
अनुरोध का मुख्य भाग
अनुरोध के मुख्य हिस्से में, यहां दिए गए स्ट्रक्चर का डेटा शामिल होता है:
JSON के काेड में दिखाना |
---|
{ "timeout": string, "model": { object ( |
फ़ील्ड | |
---|---|
timeout |
अगर यह टाइम आउट सेट है, तो सर्वर टाइम आउट की अवधि खत्म होने से पहले या सिंक्रोनस अनुरोधों के लिए सर्वर की समयसीमा खत्म होने से पहले, जवाब दे देता है. असाइनमेंट के लिए, सर्वर टाइम आउट खत्म होने से पहले ही समाधान जनरेट कर देगा. हालांकि, ऐसा सिर्फ़ तब होगा, जब यह संभव हो. सेकंड में कुल नौ दशमलव अंक, जो ' |
model |
शिपमेंट मॉडल को हल करना है. |
solvingMode |
डिफ़ॉल्ट रूप से, समस्या हल करने वाला मोड |
searchMode |
अनुरोध का समाधान करने के लिए, सर्च मोड का इस्तेमाल किया जाता है. |
injectedFirstSolutionRoutes[] |
पिछले समाधान से मिलता-जुलता पहला समाधान ढूंढने के लिए, ऑप्टिमाइज़ेशन एल्गोरिदम को गाइड करें. पहला समाधान बनाने पर, मॉडल पर पाबंदी लग जाती है. किसी रूट पर नहीं की गई किसी भी शिपमेंट को पहले समाधान में साफ़ तौर पर स्किप कर दिया जाता है, लेकिन उसे एक के बाद एक समाधान में किया जा सकता है. समाधान को, मान्य मान्यता के कुछ बुनियादी अनुमानों को पूरा करना होगा:
अगर इंजेक्ट किया गया समाधान काम नहीं करता है, तो ज़रूरी नहीं कि पुष्टि करने से जुड़ी गड़बड़ी का मैसेज दिखे. इसके बजाय, गड़बड़ी का ऐसा मैसेज दिख सकता है जिससे पता चलता हो कि समाधान काम नहीं करता. |
injectedSolutionConstraint |
पिछले समाधान से मिलता-जुलता फ़ाइनल समाधान ढूंढने के लिए, ऑप्टिमाइज़ेशन एल्गोरिदम को सीमित करें. उदाहरण के लिए, इसका इस्तेमाल रूट के उन हिस्सों को फ़्रीज़ करने के लिए किया जा सकता है जो पूरे हो चुके हैं या जिन्हें पूरा किया जाना है, लेकिन उनमें कोई बदलाव नहीं किया जाना चाहिए. अगर इंजेक्ट किया गया समाधान संभव नहीं है, तो ज़रूरी नहीं कि एक पुष्टि गड़बड़ी दिखाई गई हो और इसके बजाय, गड़बड़ी दिखाने वाली गड़बड़ी दिखाई जाए. |
refreshDetailsRoutes[] |
अगर कोई जगह खाली नहीं है, तो दिए गए रास्तों को रीफ़्रेश किया जाएगा. ऐसा करते समय, उन रास्तों के क्रम या यात्रा में लगने वाले समय में कोई बदलाव नहीं किया जाएगा. सिर्फ़ दूसरी जानकारी अपडेट की जाएगी. इससे मॉडल का समाधान नहीं होता. नवंबर 2020 से, यह सिर्फ़ उन रास्तों की पॉलीलाइन भरता है जिनमें कोई पॉइंट मौजूद होता है. इसके लिए, पास किए गए रास्तों के इस फ़ील्ड का इस्तेमाल
|
interpretInjectedSolutionsUsingLabels |
अगर यह सही है, तो:
यह परिभाषा अगर यह सही है, तो इन कैटगरी में मौजूद लेबल, अपनी कैटगरी में ज़्यादा से ज़्यादा एक बार दिखने चाहिए:
अगर इंजेक्ट किए गए समाधान में कोई इंजेक्ट किए गए समाधान से रूट विज़िट या पूरे रूट हटाने पर, लागू होने वाली पाबंदियों पर असर पड़ सकता है. इससे समाधान में बदलाव हो सकता है, पुष्टि करने में गड़बड़ियां हो सकती हैं या समाधान लागू नहीं हो सकता. ध्यान दें: कॉलर को यह पक्का करना होगा कि हर |
considerRoadTraffic |
|
populatePolylines |
अगर सही है, तो जवाब |
populateTransitionPolylines |
अगर सही है, तो रिस्पॉन्स |
allowLargeDeadlineDespiteInterruptionRisk |
अगर यह सेट है, तो अनुरोध की समयसीमा 60 मिनट तक हो सकती है. इसके बारे में ज़्यादा जानने के लिए, https://grpc.io/blog/deadlines पर जाएं. अगर ऐसा नहीं है, तो समयसीमा खत्म होने में सिर्फ़ 30 मिनट लगेंगे. ध्यान दें कि लंबे समय तक चलने वाले अनुरोधों में रुकावट आने का जोखिम ज़्यादा होता है. हालांकि, यह जोखिम बहुत कम होता है. |
useGeodesicDistances |
अगर यह सही है, तो यात्रा की दूरी का हिसाब Google Maps की दूरी के बजाय, जियोडेसिक दूरी का इस्तेमाल करके लगाया जाएगा. साथ ही, यात्रा में लगने वाले समय का हिसाब जियोडेसिक दूरी और |
label |
इस अनुरोध की पहचान करने के लिए इस्तेमाल किया जा सकने वाला लेबल, |
geodesicMetersPerSecond |
अगर |
maxValidationErrors |
पुष्टि करने से जुड़ी गड़बड़ियों की संख्या को छोटा कर देता है. आम तौर पर, ये गड़बड़ियां INVALID_ARGUMENT गड़बड़ी वाले पेलोड में, BadRequest गड़बड़ी की जानकारी (https://cloud.google.com/apis/design/errors#error_details) के तौर पर अटैच होती हैं. हालांकि, ऐसा तब तक नहीं होता, जब तक solvingMode=VALIDATE_ONLY नहीं है: |
जवाब का मुख्य भाग
कामयाब रहने पर, जवाब के मुख्य हिस्से में OptimizeToursResponse
का एक इंस्टेंस शामिल किया जाता है.
अनुमति के दायरे
नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:
https://www.googleapis.com/auth/cloud-platform
IAM की अनुमतियां
parent
संसाधन पर, IAM की इस अनुमति की ज़रूरत है:
routeoptimization.locations.use
ज़्यादा जानकारी के लिए, IAM दस्तावेज़ देखें.