- एचटीटीपी अनुरोध
- पाथ पैरामीटर
- अनुरोध का मुख्य हिस्सा
- जवाब का मुख्य हिस्सा
- अनुमति पाने के लिंक
- 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 |
अगर यह वैल्यू true पर सेट है, तो यात्रा की दूरी का हिसाब लगाने के लिए, Google Maps की दूरी के बजाय जियोडेसिक दूरी का इस्तेमाल किया जाएगा. साथ ही, यात्रा में लगने वाले समय का हिसाब लगाने के लिए, जियोडेसिक दूरी का इस्तेमाल किया जाएगा. इसके लिए, |
label |
इस अनुरोध की पहचान करने के लिए, लेबल का इस्तेमाल किया जा सकता है. इसकी जानकारी |
geodesicMetersPerSecond |
अगर |
maxValidationErrors |
यह पुष्टि करने से जुड़ी गड़बड़ियों की संख्या को कम करता है. आम तौर पर, ये गड़बड़ियां BadRequest गड़बड़ी की जानकारी (https://cloud.google.com/apis/design/errors#error_details) के तौर पर, INVALID_ARGUMENT गड़बड़ी के पेलोड से जुड़ी होती हैं. हालांकि, ऐसा तब नहीं होता, जब solvingMode=VALIDATE_ONLY: |
जवाब का मुख्य भाग
कामयाब रहने पर, जवाब के मुख्य हिस्से में Operation का एक इंस्टेंस शामिल किया जाता है.
अनुमति पाने के लिंक
नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:
https://www.googleapis.com/auth/cloud-platform
IAM से जुड़ी अनुमतियां
parent संसाधन पर, IAM की यह अनुमति ज़रूरी है:
routeoptimization.operations.create
ज़्यादा जानकारी के लिए, IAM दस्तावेज़ देखें.