রাউটিং সংক্রান্ত পছন্দ অ্যাডজাস্ট করা

রুট গণনা (রুট পরিবর্তন সহ) এমন রুট দেখায় যা নেভিগেট করতে সবচেয়ে কম সময় নেয় এবং এটি ডিফল্ট সেরা রুট হিসেবে দেখানো হয়। তবে আপনি রাউটিং স্ট্র্যাটেজি পরিবর্তন করতে পারেন যাতে পরিবর্তে বিকল্প রুটের মধ্যে যেটি ছোট সেটি দেখানো হয়।

ছোট শব্দটির অর্থ হল, আমাদের ডিফল্ট খরচ মডেলের উপর ভিত্তি করে সবচেয়ে ভালো রুটের মধ্যে যেটি সবচেয়ে ছোট। ছোট রুটটি হয়ত একেবারে সবচেয়ে ছোট রুট নয়, কারণ সেই বিকল্পটি হয়ত একটি খারাপ বিকল্প। যেমন, যদি সবচেয়ে ছোট রুট ১০ কিমি হয় এবং নেভিগেট করতে ৫০ মিনিট সময় লাগে এবং অন্য একটি রুট ১৫ কিমি হয়, কিন্তু নেভিগেট করতে মাত্র ২০ মিনিট সময় লাগে, তাহলে দ্বিতীয় বিকল্পটি বেছে নেওয়া উচিত, কারণ ৫ কিমি কমানোর জন্য ৩০ মিনিট বেশি সময় ব্যয় করা বুদ্ধিমানের কাজ নয়।

আপনি কোনও ট্রিপের জন্য রাউটিং স্ট্র্যাটেজি সেট করলে, ট্রিপ সম্পূর্ণ না হওয়া পর্যন্ত এটি পরিবর্তন হবে না। আগে থেকে থাকা ট্রিপের জন্য রাউটিং স্ট্র্যাটেজি পরিবর্তন করতে, আপনাকে অবশ্যই গন্তব্যগুলি মুছে ফেলতে হবে এবং নতুন রাউটিং স্ট্র্যাটেজির মাধ্যমে সেগুলি আবার রিসেট করতে হবে।

রুটের বিবরণ পাওয়া যাচ্ছে

প্রদত্ত ওয়েপয়েন্টের জন্য কোন রুট স্ট্র্যাটেজি সবচেয়ে ভালো তা নির্ধারণ করতে, ডিফল্ট সেরা রুট ও একেবারে ছোট রুট, দুটিরই রুটের বিবরণ পেতে 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 বাকি থাকা দূরত্ব দেখায়।

উদাহরণ

নিচের কোডের উদাহরণ থেকে বোঝা যায় যে কীভাবে রুট কলআউট ফর্ম্যাট কনফিগার করতে হয়।

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;