রুট গণনা (রুট পরিবর্তন সহ) এমন রুট দেখায় যা নেভিগেট করতে সবচেয়ে কম সময় নেয় এবং এটি ডিফল্ট সেরা রুট হিসেবে দেখানো হয়। তবে আপনি রাউটিং স্ট্র্যাটেজি পরিবর্তন করতে পারেন যাতে পরিবর্তে বিকল্প রুটের মধ্যে যেটি ছোট সেটি দেখানো হয়।
ছোট বলতে বোঝায়, আমাদের ডিফল্ট কস্ট মডেলের উপর ভিত্তি করে অপ্টিমাল রুটের মধ্যে সবচেয়ে ছোট রুট। ছোট রুটটি হয়ত একেবারে সবচেয়ে ছোট রুট নয়, কারণ সেই বিকল্পটি হয়ত একটি খারাপ বিকল্প। যেমন, যদি সবচেয়ে ছোট রুট ১০ কিমি হয় এবং নেভিগেট করতে ৫০ মিনিট সময় লাগে এবং অন্য একটি রুট ১৫ কিমি হয়, কিন্তু নেভিগেট করতে মাত্র ২০ মিনিট সময় লাগে, তাহলে দ্বিতীয় বিকল্পটি বেছে নেওয়া উচিত, কারণ ৫ কিমি কমানোর জন্য ৩০ মিনিট বেশি সময় ব্যয় করা বুদ্ধিমানের কাজ নয়।
আপনি কোনও ট্রিপের জন্য রাউটিং স্ট্র্যাটেজি সেট করলে, ট্রিপ সম্পূর্ণ না হওয়া পর্যন্ত এটি পরিবর্তন হবে না। আগে থেকে থাকা ট্রিপের জন্য রাউটিং স্ট্র্যাটেজি পরিবর্তন করতে, আপনাকে অবশ্যই গন্তব্যগুলি মুছে ফেলতে হবে এবং নতুন রাউটিং স্ট্র্যাটেজির সাথে সেগুলি আবার রিসেট করতে হবে।
রুটের বিবরণ পাওয়া
কোনও নির্দিষ্ট ওয়েপয়েন্টের জন্য কোন রুট স্ট্র্যাটেজি সবচেয়ে ভালো বিকল্প তা নির্ধারণ করতে,
ডিফল্ট
সবচেয়ে ভালো রুট ও সবচেয়ে ছোট রুটের বিবরণ পেতে getRouteInfoForDestination()-এ কল করুন। বিবরণের মধ্যে অন্তর্ভুক্ত হল সময়সীমা এবং
গন্তব্যের ওয়েপয়েন্টের দূরত্ব।
কলব্যাকে এই বিবরণ
GMSNavigationRouteInfo
থেকে আসে।
উদাহরণ
নিচের কোডের উদাহরণ থেকে বোঝা যায় যে কীভাবে দুটি রুটিং স্ট্র্যাটেজির প্রতিটির জন্য রুটের বিবরণ পেতে হয়।
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
রাউটিং স্ট্র্যাটেজি সেট করা হচ্ছে
GMSNavigationRoutingOptions ব্যবহার করে রাউটিং স্ট্র্যাটেজি কনফিগার করতে পারবেন,
এবং setDestinations()-এ কল করার সময় routingStrategy সেট করতে পারবেন।
routingStrategy নিম্নলিখিত এনুমেরেশন ভ্যালুগুলির মধ্যে একটি নেয়:
| এনামেরেশন ভ্যালু | বিবরণ |
|---|---|
| GMSNavigationRoutingStrategyDefaultBest | Navigation SDK-এর ডিফল্ট কস্ট মডেল অনুযায়ী রুটগুলিকে র্যাঙ্ক করে। এটি হল ডিফল্ট রাউটিং স্ট্র্যাটেজি। |
| GMSNavigationRoutingStrategyShorter | দূরত্বের ভিত্তিতে রুটকে র্যাঙ্ক করে। ফেরানো রুটগুলির মধ্যে সবচেয়ে বেশি র্যাঙ্কিং পাওয়া রুটটি হল সবচেয়ে ছোট রুট। |
উদাহরণ
নিচের কোডের উদাহরণ থেকে কীভাবে সবচেয়ে ছোট রুট বেছে নেওয়ার স্ট্র্যাটেজি সেট করতে হয় তা জানতে পারবেন।
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
ফেরির সুবিধা আছে এমন রুট
ডিফল্ট হিসেবে, iOS-এর জন্য Navigation SDK ফেরি অন্তর্ভুক্ত থাকা রুট বাদ দেয়। আপনি যদি নিজের রুটের অংশ হিসেবে ফেরি বিকল্প
অন্তর্ভুক্ত করতে চান, তাহলে ফেরি সেগমেন্টে ট্রিপ দেখানোর জন্য এই রুটিং
পছন্দ অ্যাডজাস্ট করতে পারেন। এর জন্য avoidsFerries-কে
false হিসেবে সেট করুন।
উদাহরণ
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
রুট কল-আউট ফর্ম্যাট
ছোট রুট রাউটিং স্ট্র্যাটেজির অধীনে, রুটের কলআউটগুলি দূরত্বের বিবরণ দেখায়। তবে, আপনি এর পরিবর্তে ETA কলআউট ব্যবহার করতে পারবেন।
রুট কলআউট ফর্ম্যাট কনফিগার করা
আপনি GMSMapView-এ routeCalloutFormat সেট করে রুট কলআউট ফর্ম্যাট পরিবর্তন করতে পারবেন। routeCalloutFormat নিম্নলিখিত এনুমেরেশন
ভ্যালুগুলির মধ্যে একটি নেয়:
| এনামেরেশন ভ্যালু | বিবরণ |
|---|---|
| GMSNavigationRouteCalloutFormatDefault | ডিফল্ট সেরা রুট রাউটিং স্ট্র্যাটেজি ব্যবহার করার সময় বাকি সময় দেখায়। কম দৈর্ঘ্যের রুট রাউটিং স্ট্র্যাটেজি ব্যবহার করার সময় বাকি দূরত্ব দেখায় |
| GMSNavigationRouteCalloutFormatTime | বাকি থাকা সময় দেখায়। |
| GMSNavigationRouteCalloutFormatDistance | Dবাকি দূরত্ব দেখায়। |
উদাহরণ
নিচের কোড উদাহরণ থেকে কীভাবে রুট কলআউট ফর্ম্যাট কনফিগার করতে হয় তা জানতে পারবেন।
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;