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