ওয়েপয়েন্ট অপ্টিমাইজেশন হল Routes Preferred-এর একটি ফিচার যা
ComputeRoutes-কে এক্সটেন্ড করে।
এটি কোনও ভ্রমণকারীর রুটে মধ্যবর্তী ওয়েপয়েন্টের ক্রম অপ্টিমাইজ করে,
যাতে তারা সম্ভাব্য সবচেয়ে দক্ষ রুটে ভ্রমণ করতে পারে। ComputeRoutes
ওয়েপয়েন্ট অপ্টিমাইজেশন ইমপ্লিমেন্ট করার সময় নিম্নলিখিত ট্রাভেল মোড কাজ করে:
- ড্রাইভিং
- মোটরচালিত দুই চাকার গাড়ি
- সাইক্লিং
- হাঁটা
ওয়েপয়েন্ট অপ্টিমাইজেশন কেন ব্যবহার করবেন?
এমন অ্যাপ তৈরি করার সময় যা ব্যবহারকারীকে গন্তব্যে পৌঁছানোর পথে একাধিক ওয়েপয়েন্টের মাধ্যমে গাইড করে, তখন এটি গুরুত্বপূর্ণ যে ভ্রমণকারী যেন ওয়েপয়েন্টগুলি সবচেয়ে উপযুক্ত ক্রমে অতিক্রম করেন। এর ফলে, ভ্রমণকারী প্রতিটি ওয়েপয়েন্টে সবচেয়ে কম সময়ে পৌঁছাতে পারবেন।
এটি কীভাবে কাজ করে
ডিফল্ট হিসেবে, ComputeRoutes তার ওয়েপয়েন্টের মাধ্যমে একটি রুট হিসেব করে, যে ক্রমে
সেগুলি মূলত প্রদান করা হয়েছিল। আপনি ComputeRoutes-কে বলতে পারেন যাতে
মাঝের ওয়েপয়েন্টগুলিকে আরও দক্ষ ক্রমে সাজিয়ে রুটটি অপ্টিমাইজ করে।
অনুরোধের বডিতে optimizeWaypointOrder ফিল্ড true-এ সেট করলে, আপনি অপ্টিমাইজ করা ওয়েপয়েন্ট সহ রুট পাবেন।
মনে রাখবেন: ওয়েপয়েন্ট অপ্টিমাইজেশন সংক্রান্ত গণনা মূলত ভ্রমণের সময়ের উপর ভিত্তি করে করা হয়, তবে এই ফিচার অন্যান্য বিষয়ও বিবেচনা করে, যেমন দূরত্ব এবং কতবার ঘুরতে হবে।
আবার সাজানো ওয়েপয়েন্ট পান
পুনর্বিন্যাস করা ওয়েপয়েন্ট সহ রুট পেতে, আপনার অনুরোধের বডিতে
optimizeWaypointOrder বুলিয়ান ফিল্ডটি true-এ সেট করুন
ComputeRoutes-এ। এছাড়াও, ফিল্ড মাস্কে optimizedIntermediateWaypointIndex
ফিল্ড অন্তর্ভুক্ত করুন। রেসপন্স বডিতে optimizedIntermediateWaypointIndex ফিল্ডে অপ্টিমাইজ করা ওয়েপয়েন্ট অর্ডার থাকে।
মনে রাখবেন: optimizedIntermediateWaypointIndex ফিল্ড শূন্য-ভিত্তিক
ভ্যালু রিটার্ন করে।
অনুরোধের উদাহরণ
নিম্নলিখিত অনুরোধের উদাহরণটি Stanford University ক্যাম্পাসের কাছাকাছি একটি রুট প্রদান করে। অনুরোধে রুটের ওয়েপয়েন্টগুলি ক্রমানুসারে সরবরাহ করা হয়েছে। অনুরোধে একটি উৎস এবং একটি গন্তব্য রয়েছে, যার মধ্যে দুটি মধ্যবর্তী ওয়েপয়েন্ট রয়েছে।
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"}
উত্তরের উদাহরণ
আপনি রেসপন্স বডিতে রুট অবজেক্টের মধ্যে 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 অনুরোধ হেডারের জন্য অন্তত দশ সেকেন্ডের
একটি ভ্যালু সেট করুন। আপনি যদি টাইমআউট সংক্রান্ত সমস্যা পেতে থাকেন, তাহলে আপনি আরও এক সেকেন্ড যোগ করতে পারেন
এবং তারপর আবার চেষ্টা করুন।
ব্যবহারের উপরে প্রযোজ্য সীমাবদ্ধতাগুলি
ওয়েপয়েন্ট অপ্টিমাইজেশন ব্যবহার করতে, আপনাকে অবশ্যই ব্যবহারের এইসব সীমাবদ্ধতা ও শর্তাবলী মেনে চলতে হবে:
আপনার রুটে মধ্যবর্তী ওয়েপয়েন্টের জন্য ব্যবহারের সীমা পর্যন্ত আপনি নির্দিষ্ট করতে পারবেন:
- শুধুমাত্র অক্ষাংশ ও দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করে সর্বাধিক ৯৮টি ওয়েপয়েন্ট।
- আপনি যদি স্থান আইডি ব্যবহার করে কোনও ওয়েপয়েন্ট নির্দিষ্ট করেন তবে ২৫টি পর্যন্ত ওয়েপয়েন্ট।
আপনার সবকটি ওয়েপয়েন্ট অবশ্যই স্টপওভার ধরনের হতে হবে। আপনার কোনও ওয়েপয়েন্ট এর মাধ্যমে ধরনের হতে পারবে না।
আপনাকে অবশ্যই ফিল্ডে
routes.optimizedIntermediateWaypointIndexযোগ করতে হবে মাস্ক।আপনার অনুরোধে ২৫ বা তার বেশি ইন্টারমিডিয়েট ওয়েপয়েন্ট থাকলে, এটিকেও নিম্নলিখিত শর্ত মেনে চলতে হবে:
সবকটি ওয়েপয়েন্টের মধ্যে মোট সরলরৈখিক দূরত্ব ১,০০০ কিমি-এর কম হতে হবে। এই দূরত্বের মধ্যে উৎস ও গন্তব্য, দুটিই অন্তর্ভুক্ত।
ভ্রমণ মোড অবশ্যই DRIVE হতে হবে।