সাধারণত, যানবাহন যেকোনো দিক থেকে পিকআপ বা ডেলিভারি স্থানে আসতে পারে এবং তারপর যেকোনো দিকে চলে যেতে পারে। কিছু ক্ষেত্রে, এটি যানবাহনকে পরিদর্শন স্থানে ইউ-টার্ন নিতে বাধ্য করে, যা গাড়ির আকার, অবস্থানের ট্র্যাফিক সাইন বা স্বাভাবিক ট্র্যাফিক পরিস্থিতির কারণে কঠিন বা অসম্ভব হতে পারে।
নির্দিষ্ট পিকআপ বা ডেলিভারি অবস্থানের জন্য আগমন এবং প্রস্থানের মধ্যে যানবাহনের দিক পরিবর্তন রোধ করার জন্য, আপনি এই অবস্থানের জন্য avoid_u_turns সত্য হিসাবে সেট করতে পারেন। এই সেটিং এর অধীনে, গাড়িটি একই শিরোনাম সহ অবস্থানে পৌঁছাবে এবং ছেড়ে যাবে, ফলে ইউ-টার্ন এড়ানো হবে। দ্বিমুখী রাস্তায় সমাধানকারী উভয় দিক বিবেচনা করবে এবং রুট অপ্টিমাইজেশনের অংশ হিসাবে একটি বেছে নেবে।
আপনি side_of_road true তে সেট করতে পারেন যাতে ওয়েপয়েন্টের সবচেয়ে কাছের রাস্তার পাশে গাড়িটি আসে এবং ছেড়ে যায়। এই ক্ষেত্রে, গাড়িটি আগমন এবং প্রস্থানের মধ্যে হেডিং পরিবর্তন করে না। একই ফলাফল অর্জনের জন্য side_of_road এবং avoid_u_turns উভয়কেই true তে সেট করা সম্ভব। বিস্তারিত জানার জন্য, অন্যান্য বৈশিষ্ট্যের সাথে মিথস্ক্রিয়া দেখুন।
বাস্তবে, রাস্তা পার হওয়া নিরাপদ হলে, রাস্তা পার হওয়ার সময়, side_of_road avoid_u_turns ব্যবহার করা উচিত, যখন রাস্তা পার হওয়া নিরুৎসাহিত করা হয় বা সম্ভব না হয়।
উদাহরণ: avoid_u_turns ব্যবহার করে একটি OptimizeTours অনুরোধ করুন
OptimizeTours অনুরোধগুলি REST অথবা gRPC ব্যবহার করে করা যেতে পারে।
অনুরোধ করার আগে, নিম্নলিখিত প্যারামিটারগুলি আপনার পরিবেশের জন্য উপযুক্ত মান দিয়ে প্রতিস্থাপন করুন:
- Use OAuth এ বর্ণিতভাবে অ্যাপ্লিকেশন ডিফল্ট শংসাপত্রগুলি কনফিগার করা আছে কিনা তা নিশ্চিত করুন।
আপনার ক্লাউড প্রোজেক্ট নম্বর বা আইডিতে PROJECT_NUMBER_OR_ID সেট করুন।
নিম্নলিখিত কমান্ডটি রুট অপ্টিমাইজেশন 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_turnsside_of_road = trueএর সাথে একসাথে ব্যবহার করা যেতে পারে। এই ক্ষেত্রে, u-turns এড়ানো হয়, কিন্তু সমাধানকারী এমন একটি রুট নির্বাচন করে যেখানে গাড়িটি ওয়েপয়েন্টের মতো রাস্তার একই পাশে থাকে, যেমন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_turnsinterpret_injected_solutions_using_labelsএর সাথে একসাথে ব্যবহার করা যাবে না।