- एचटीटीपी अनुरोध
- पाथ पैरामीटर
- अनुरोध का मुख्य हिस्सा
- जवाब का मुख्य हिस्सा
- अनुमति पाने के लिंक
- IAM अनुमतियां
यह projects.optimizeTours तरीके का एक वैरिएंट है. इसे ज़्यादा टाइमआउट वैल्यू के साथ ऑप्टिमाइज़ेशन के लिए डिज़ाइन किया गया है. अगर ऑप्टिमाइज़ेशन में कुछ मिनट से ज़्यादा समय लगता है, तो projects.optimizeTours के बजाय इस तरीके का इस्तेमाल करना चाहिए.
लौटाए गए long-running operation (एलआरओ) का नाम <parent>/operations/<operation_id> फ़ॉर्मैट में होगा. इसका इस्तेमाल, कंप्यूटेशन की प्रोग्रेस को ट्रैक करने के लिए किया जा सकता है. metadata फ़ील्ड का टाइप OptimizeToursLongRunningMetadata है. अगर अनुरोध पूरा हो जाता है, तो response फ़ील्ड का टाइप OptimizeToursResponse होता है.
एचटीटीपी अनुरोध
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeToursLongRunning
यह यूआरएल, 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 हो. |
जवाब का मुख्य भाग
कामयाब रहने पर, जवाब के मुख्य हिस्से में Operation का एक इंस्टेंस शामिल किया जाता है.
अनुमति पाने के लिंक
नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:
https://www.googleapis.com/auth/cloud-platform
IAM अनुमतियां
parent संसाधन पर, IAM से जुड़ी यह अनुमति ज़रूरी है:
routeoptimization.operations.create
ज़्यादा जानकारी के लिए, IAM से जुड़ा दस्तावेज़ देखें.