डिफ़ॉल्ट रूप से, वाहन किसी भी दिशा से पिकअप या डिलीवरी की जगह पर पहुंच सकते हैं. इसके बाद, वे किसी भी दिशा में जा सकते हैं. कुछ मामलों में, इसकी वजह से वाहन को उस जगह पर यू-टर्न लेना पड़ता है जहां जाना है. हालांकि, वाहन के साइज़, उस जगह पर मौजूद ट्रैफ़िक साइन या ट्रैफ़िक की सामान्य स्थितियों की वजह से, ऐसा करना मुश्किल हो सकता है या मुमकिन नहीं हो सकता.
किसी पिकअप या डिलीवरी की जगह पर पहुंचने और वहां से निकलने के बीच वाहनों को दिशा बदलने से रोकने के लिए, इस जगह के लिए avoid_u_turns को सही पर सेट किया जा सकता है. इस सेटिंग के तहत, वाहन एक ही दिशा में आएगा और जाएगा. इससे उसे यू-टर्न लेने की ज़रूरत नहीं पड़ेगी. दोतरफ़ा सड़कों पर, सॉल्वर दोनों दिशाओं पर विचार करेगा और किसी एक को रास्ते के ऑप्टिमाइज़ेशन के हिस्से के तौर पर चुनेगा.
side_of_road को सही पर सेट करके, ऐसा रास्ता भी पाया जा सकता है जहां वाहन, वेपॉइंट के सबसे नज़दीकी सड़क के किनारे पर पहुंचता है और वहां से निकलता है. इस मामले में, वाहन के पहुंचने और जाने के बीच भी दिशा नहीं बदलती है. एक ही नतीजे को पाने के लिए, side_of_road और avoid_u_turns, दोनों को सही के तौर पर सेट किया जा सकता है. ज़्यादा जानकारी के लिए, अन्य सुविधाओं के साथ इंटरैक्शन लेख पढ़ें.
असल में, avoid_u_turns का इस्तेमाल तब किया जाना चाहिए, जब वेपॉइंट तक पहुंचने के लिए सड़क पार करना सुरक्षित हो. जब सड़क पार करने की सलाह न दी गई हो या सड़क पार करना मुमकिन न हो, तब side_of_road का इस्तेमाल करें.
उदाहरण: avoid_u_turns के साथ OptimizeTours का अनुरोध करना
OptimizeTours अनुरोध, REST या gRPC का इस्तेमाल करके किए जा सकते हैं.
अनुरोध करने से पहले, यहां दिए गए पैरामीटर को अपने एनवायरमेंट के हिसाब से सही वैल्यू से बदलें:
- पक्का करें कि आपने ऐप्लिकेशन के लिए डिफ़ॉल्ट क्रेडेंशियल कॉन्फ़िगर किए हों. इसके बारे में OAuth का इस्तेमाल करना लेख में बताया गया है.
PROJECT_NUMBER_OR_ID को अपने Cloud प्रोजेक्ट नंबर या आईडी पर सेट करें.
नीचे दिया गया निर्देश, Route Optimization API को
OptimizeToursअनुरोध भेजता है और सिंक्रोनस तरीके से जवाब पाता है.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ], } } EOM
अनुरोध पूरा होने के बाद, आपको एक जवाब मिलेगा.
अन्य सुविधाओं के साथ इंटरैक्शन
avoid_u_turnsकोside_of_road = trueके साथ इस्तेमाल किया जा सकता है. इस मामले में, यू-टर्न से बचा जाता है. हालांकि, सॉल्वर ऐसा रास्ता चुनता है जिसमें वाहन, वेपॉइंट की सड़क के उसी तरफ़ होता है. यह सिर्फ़side_of_road = trueसेट करने जैसा होता है.- जब किसी विज़िट के अनुरोध के लिए
avoid_u_turns = trueहोता है, तब जवाब में मौजूदShipmentRoute.Visitमेंinjected_solution_location_tokenफ़ील्ड सेट होता है. इसकी वैल्यू का सटीक मतलब, लागू करने से जुड़ी जानकारी है. हालांकि, यह उस सड़क के बारे में जानकारी को एन्कोड करता है जिसे सॉल्वर ने चुना है. - इनपुट अनुरोध के हिस्से के तौर पर
ShipmentRoute.Visitका इस्तेमाल करने पर, अगर वहShipmentRoute.Visitकिसी ऐसेVisitRequestसे मेल खाता है जिसमेंavoid_u_turns = trueमौजूद है, तोShipmentRoute.Visitमें, हल करने वाले व्यक्ति की ओर से पहले दिया गयाinjected_solution_location_tokenहोना चाहिए.
सीमाएं
यू-टर्न से बचने की सुविधा, सबसे बेहतर तरीके से काम करती है. कुछ स्थितियों में, रास्ते में अब भी यू-टर्न हो सकते हैं:
avoid_u_turnsसिर्फ़ उन यात्रा मोड के साथ काम करता है जोside_of_roadके साथ काम करते हैं. खास तौर पर, यहWALKINGयात्रा मोड के लिए काम नहीं करता.avoid_u_turnsका इस्तेमाल, पिकअप और डिलीवरी के लिए नहीं किया जा सकता. ऐसा तब होता है, जब पहुंचने और जाने की जगह एक नहीं होती.- जब पिकअप या डिलीवरी किसी ऐसी सड़क पर होती है जो आगे जाकर बंद हो जाती है, तो उस सड़क से बाहर निकलने के लिए यू-टर्न लेना ज़रूरी होता है.
- इस सुविधा का मकसद, पिकअप और डिलीवरी की जगहों पर यू-टर्न लेने से बचना है. रास्ते में पड़ने वाले पॉइंट के बीच यू-टर्न से बचा नहीं जाता.
- किसी दूसरी सड़क पर बहुत तेज़ी से मुड़ने को यू-टर्न नहीं माना जाता. आम तौर पर, ऐसे रास्तों को नहीं हटाया जाता.
इस सुविधा पर काम चल रहा है. इसलिए, इसके इस्तेमाल से जुड़ी कुछ और सीमाएं हैं. हमें उम्मीद है कि इस सुविधा के बेहतर होने पर, इन पाबंदियों को हटा दिया जाएगा.
avoid_u_turnsका इस्तेमालinterpret_injected_solutions_using_labelsके साथ नहीं किया जा सकता.