ওয়েপয়েন্ট অপ্টিমাইজেশন হল একটি রুটস প্রিফারেড বৈশিষ্ট্য যা ComputeRoutes প্রসারিত করে। এটি একজন ভ্রমণকারীর রুটে মধ্যবর্তী ওয়েপয়েন্টগুলির ক্রম অপ্টিমাইজ করে, নিশ্চিত করে যে তারা সম্ভাব্য সবচেয়ে কার্যকর রুটে ভ্রমণ করে। ওয়েপয়েন্ট অপ্টিমাইজেশনের ComputeRoutes বাস্তবায়ন নিম্নলিখিত ভ্রমণ মোডগুলিকে সমর্থন করে:
- ড্রাইভিং
- মোটরচালিত দুই চাকার গাড়ি
- সাইক্লিং
- হাঁটা
ওয়েপয়েন্ট অপ্টিমাইজেশন কেন ব্যবহার করবেন?
যখন এমন একটি অ্যাপ তৈরি করা হয় যা ব্যবহারকারীদের গন্তব্যে পৌঁছানোর পথে বিভিন্ন ওয়েপয়েন্টের মধ্য দিয়ে পরিচালিত করে, তখন ভ্রমণকারীকে সর্বোত্তম ক্রমে ওয়েপয়েন্টগুলি অতিক্রম করা গুরুত্বপূর্ণ। এটি নিশ্চিত করে যে ভ্রমণকারী সবচেয়ে কম সময়ের মধ্যে প্রতিটি ওয়েপয়েন্টে পৌঁছাতে পারে।
কিভাবে এটা কাজ করে
ডিফল্টরূপে, ComputeRoutes তার ওয়েপয়েন্টগুলির মধ্য দিয়ে একটি রুট গণনা করে, যে ক্রমে সেগুলি মূলত সরবরাহ করা হয়েছিল। আপনি মধ্যবর্তী ওয়েপয়েন্টগুলিকে আরও দক্ষ ক্রমে পুনর্বিন্যাস করে ComputeRoutes রুটটি অপ্টিমাইজ করতে পারেন। আপনি যদি অনুরোধের মূল অংশে optimizeWaypointOrder ক্ষেত্রটি true তে সেট করেন তবে আপনি অপ্টিমাইজড ওয়েপয়েন্ট সহ একটি রুট পাবেন।
দ্রষ্টব্য : ওয়েপয়েন্ট অপ্টিমাইজেশন গণনা মূলত ভ্রমণের সময়ের উপর ভিত্তি করে করা হয়, তবে বৈশিষ্ট্যটি অন্যান্য বিষয়গুলিও বিবেচনা করে, যেমন দূরত্ব এবং বাঁকের সংখ্যা।
পুনঃক্রমযুক্ত ওয়েপয়েন্ট পান
পুনঃক্রমযুক্ত ওয়েপয়েন্ট সহ একটি রুট পেতে, ComputeRoutes এর অনুরোধের মূল অংশে বুলিয়ান ফিল্ড optimizeWaypointOrder true তে সেট করুন। এছাড়াও, ফিল্ড মাস্কে optimizedIntermediateWaypointIndex ফিল্ডটি অন্তর্ভুক্ত করুন। রেসপন্স বডিতে optimizedIntermediateWaypointIndex ফিল্ডগুলিতে অপ্টিমাইজ করা ওয়েপয়েন্ট অর্ডার থাকে।
দ্রষ্টব্য : optimizedIntermediateWaypointIndex ক্ষেত্রটি শূন্য-ভিত্তিক মান প্রদান করে।
উদাহরণ অনুরোধ
নিচের উদাহরণের অনুরোধটি স্ট্যানফোর্ড বিশ্ববিদ্যালয় ক্যাম্পাসের কাছাকাছি একটি রুট সরবরাহ করে। অনুরোধে রুট ওয়েপয়েন্টগুলি ক্রমানুসারে সরবরাহ করা হয়েছে। অনুরোধটিতে একটি উৎস এবং একটি গন্তব্য রয়েছে, দুটি মধ্যবর্তী ওয়েপয়েন্ট সহ।
POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
"origin":{
"location":{
"latLng":{
"latitude": 37.418956,
"longitude": -122.160815
}
}
},
"intermediates": [
{
"location":{
"latLng":{
"latitude": 37.4176423,
"longitude":-122.1102246
}
}
},
{
"location":{
"latLng":{
"latitude": 37.407689,
"longitude": -122.1360597
}
}
}
],
"destination":{
"location":{
"latLng":{
"latitude": 37.4032137,
"longitude": -122.0349119
}
}
},
"travelMode": "DRIVE",
"optimizeWaypointOrder": true,
"routingPreference": "TRAFFIC_AWARE"}
উদাহরণ প্রতিক্রিয়া
রেসপন্স বডিতে routes অবজেক্টের মধ্যে optimizedIntermediateWaypointIndex ফিল্ডে আপনি পুনঃক্রমযুক্ত মধ্যবর্তী ওয়েপয়েন্ট সূচকগুলি খুঁজে পেতে পারেন। এনকোডেড পলিলাইনটি Directions API এবং ComputeRoutes এর মতোই।
routes {
distance_meters: 17647
duration {
seconds: 1866
}
polyline {
encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
}
optimizedIntermediateWaypointIndex: 1
optimizedIntermediateWaypointIndex: 0
}
এই উদাহরণে, লক্ষ্য করুন যে ওয়েপয়েন্টগুলি অপ্টিমাইজ করলে তাদের মূল ক্রম বিপরীত হয়।
প্রস্তাবিত অনুশীলন
অপ্টিমাইজড ওয়েপয়েন্ট সহ একটি অনুরোধ একটি সাধারণ রাউটিং অনুরোধের চেয়ে প্রক্রিয়া করতে বেশি সময় নেয়। তাই, আমরা সুপারিশ করছি যে আপনি X-Server-Timeout অনুরোধ শিরোনামের জন্য কমপক্ষে দশ সেকেন্ডের মান সেট করে পদ্ধতি কলে একটি উচ্চতর টাইমআউট সেট করুন। যদি আপনি টাইমআউট ত্রুটি পেতে থাকেন, তাহলে আপনি আরও একটি সেকেন্ড যোগ করতে পারেন এবং তারপর আবার চেষ্টা করতে পারেন।
ব্যবহারের সীমাবদ্ধতা
ওয়েপয়েন্ট অপ্টিমাইজেশন ব্যবহার করতে, আপনাকে এই ব্যবহারের সীমাবদ্ধতা এবং শর্তাবলী অনুসরণ করতে হবে:
আপনার রুটে মধ্যবর্তী ওয়েপয়েন্টের জন্য ব্যবহারের সীমা পর্যন্ত আপনি নির্দিষ্ট করতে পারেন:
- শুধুমাত্র অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করে 98টি পর্যন্ত ওয়েপয়েন্ট।
- স্থান আইডি ব্যবহার করে যেকোনো ওয়েপয়েন্ট নির্দিষ্ট করলে সর্বোচ্চ ২৫টি ওয়েপয়েন্ট।
তোমার সকল ওয়েপয়েন্ট অবশ্যই স্টপওভার ধরণের হতে হবে। তোমার কোন ওয়েপয়েন্টই via ধরণের হতে পারবে না।
আপনাকে ফিল্ড মাস্কে
routes.optimizedIntermediateWaypointIndexযোগ করতে হবে।যদি আপনার অনুরোধে ২৫ বা তার বেশি মধ্যবর্তী পথ থাকে, তাহলে এটিকে নিম্নলিখিত শর্তগুলিও মেনে চলতে হবে:
সমস্ত ওয়েপয়েন্টের মধ্যে সঞ্চিত সরলরেখার দূরত্ব অবশ্যই ১,০০০ কিলোমিটারের কম হতে হবে। এই দূরত্বে উৎপত্তিস্থল এবং গন্তব্যস্থল উভয়ই অন্তর্ভুক্ত।
ভ্রমণ মোডটি অবশ্যই ড্রাইভ হতে হবে।