রুট গণনা (পুনরায় রুট করা সহ) সেই রুটটিকে ডিফল্ট সেরা রুট হিসাবে ফেরত পাঠায় যা নেভিগেট করতে সবচেয়ে কম সময় নেয়। তবে আপনি রাউটিং কৌশল পরিবর্তন করতে পারেন যাতে রুটের বিকল্পগুলির মধ্যে ছোটটি ফেরত দেওয়া হয়।
"ছোট" শব্দটির অর্থ হল আমাদের ডিফল্ট খরচ মডেলের উপর ভিত্তি করে সর্বোত্তম রুটের মধ্যে সবচেয়ে ছোট রুট। ছোট রুটটি সম্পূর্ণ সংক্ষিপ্ত রুট নাও হতে পারে, কারণ সেই বিকল্পটি একটি খারাপ বিকল্প হতে পারে। উদাহরণস্বরূপ, যদি সবচেয়ে ছোট রুটটি 10 কিলোমিটার হয় এবং নেভিগেট করতে 50 মিনিট সময় লাগে এবং অন্য একটি রুট 15 কিলোমিটার হয়, কিন্তু নেভিগেট করতে মাত্র 20 মিনিট সময় লাগে, তাহলে দ্বিতীয় পছন্দটি সর্বোত্তম, কারণ পাঁচ কিলোমিটার কমাতে 30 মিনিট ব্যয় করা একটি ভাল বিনিময় নয়।
একবার আপনি কোনও ট্রিপের জন্য রাউটিং কৌশল সেট করলে, ট্রিপটি সম্পূর্ণ না হওয়া পর্যন্ত এটি পরিবর্তন হবে না। বিদ্যমান ট্রিপের জন্য রাউটিং কৌশল পরিবর্তন করতে, আপনাকে গন্তব্যগুলি সাফ করতে হবে এবং নতুন রাউটিং কৌশল দিয়ে সেগুলি আবার রিসেট করতে হবে।
রুটের বিবরণ পাওয়া যাচ্ছে
কোন রুট কৌশলটি কোন নির্দিষ্ট ওয়েপয়েন্টের জন্য সর্বোত্তম পছন্দ তা নির্ধারণ করতে, ডিফল্ট সেরা রুট এবং সম্পূর্ণ ছোট রুট উভয়ের জন্য রুটের বিবরণ পেতে getRouteInfoForDestination() এ কল করুন। বিশদের মধ্যে একটি গন্তব্য ওয়েপয়েন্টের সময়কাল এবং দূরত্ব অন্তর্ভুক্ত থাকে।
এই বিবরণগুলি কলব্যাকে GMSNavigationRouteInfo থেকে নেওয়া হয়েছে।
উদাহরণ
নিম্নলিখিত কোড উদাহরণটি দেখায় যে দুটি রাউটিং কৌশলের প্রতিটির জন্য রুটের বিবরণ কীভাবে পেতে হয়।
সুইফট
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
অবজেক্টিভ-সি
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
রাউটিং কৌশল নির্ধারণ করা
আপনি GMSNavigationRoutingOptions ব্যবহার করে এবং setDestinations() কল করার সময় routingStrategy সেট করে রাউটিং কৌশল কনফিগার করতে পারেন।
routingStrategy নিম্নলিখিত গণনার মানগুলির মধ্যে একটি গ্রহণ করে:
| গণনার মান | বিবরণ |
|---|---|
| GMSNavigationRoutingStrategyDefaultBest সম্পর্কে | নেভিগেশন SDK ডিফল্ট খরচ মডেল অনুসারে রুটগুলিকে র্যাঙ্ক করে। এটি ডিফল্ট রাউটিং কৌশল। |
| GMSNavigationRoutingকৌশল ছোট | দূরত্ব অনুসারে রুটগুলিকে র্যাঙ্ক করে। ফিরে আসা রুটগুলির মধ্যে সর্বোচ্চ র্যাঙ্কিং রুটটি সবচেয়ে ছোট। |
উদাহরণ
নিচের কোড উদাহরণটি দেখায় কিভাবে ছোট রুট রাউটিং কৌশল সেট করতে হয়।
সুইফট
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
অবজেক্টিভ-সি
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
ফেরি সহ রুটগুলি
ডিফল্টরূপে, iOS এর জন্য নেভিগেশন SDK ফেরি অন্তর্ভুক্ত রুটগুলিকে বাদ দেয়। আপনি যদি আপনার রুটের অংশ হিসাবে ফেরি বিকল্পগুলি অন্তর্ভুক্ত করতে চান, তাহলে আপনি avoidsFerries কে false এ সেট করে ফেরি বিভাগগুলিতে ট্রিপ প্রকাশ করার জন্য এই রাউটিং পছন্দটি সামঞ্জস্য করতে পারেন।
উদাহরণ
সুইফট
self.mapView.navigator?.avoidsFerries = false
অবজেক্টিভ-সি
self.mapView.navigator.avoidsFerries = NO
রুট কলআউট ফর্ম্যাট
সংক্ষিপ্ত রুট রাউটিং কৌশলের অধীনে, রুট বরাবর কলআউটগুলি দূরত্বের বিবরণ প্রদর্শন করে। তবে আপনি পরিবর্তে ETA কলআউটগুলি ব্যবহার করতে পারেন।
রুট কলআউট ফর্ম্যাট কনফিগার করা হচ্ছে
আপনি GMSMapView এ routeCalloutFormat সেট করে রুট কলআউট ফর্ম্যাট পরিবর্তন করতে পারেন। routeCalloutFormat নিম্নলিখিত গণনার মানগুলির মধ্যে একটি গ্রহণ করে:
| গণনার মান | বিবরণ |
|---|---|
| GMSNavigationRouteCalloutFormatডিফল্ট | ডিফল্ট সেরা রুট রাউটিং কৌশল ব্যবহার করার সময় অবশিষ্ট সময় প্রদর্শন করে। সংক্ষিপ্ত রুট রাউটিং কৌশল ব্যবহার করার সময় অবশিষ্ট দূরত্ব প্রদর্শন করে |
| GMSNavigationRouteCalloutFormatTime সম্পর্কে | বাকি সময় প্রদর্শন করে। |
| GMSNavigationRouteCalloutFormatDistance সম্পর্কে | D অবশিষ্ট দূরত্ব প্রদর্শন করে। |
উদাহরণ
নিম্নলিখিত কোড উদাহরণটি রুট কলআউট ফর্ম্যাটটি কীভাবে কনফিগার করতে হয় তা দেখায়।
সুইফট
self.mapView.routeCalloutFormat = .time
অবজেক্টিভ-সি
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;