ম্যাপ-ভিত্তিক নেভিগেশন নির্দেশিকার জন্য ডিজাইন করা হয়নি এমন ডিভাইসে, এক এক করে ডেটা ফিড শুধুমাত্র নেভিগেশন সংক্রান্ত তথ্য প্রদান করে। আপনার দেওয়া এলিমেন্ট সহ এটি আসন্ন ম্যানুভার সম্পর্কে তথ্য প্রদান করে:
- আইকন (বাঁদিকে, ডানদিকে, ইউ-টার্ন)
- রাউন্ডঅ্যাবাউটে নম্বর চালু করো
- রাস্তার নাম
- পরবর্তী নেভিগেশন ধাপ বা চূড়ান্ত গন্তব্যে পৌঁছানোর আনুমানিক দূরত্ব ও সময়
আপনি এক এক করে ফিড ব্যবহার করে এমন অভিজ্ঞতা তৈরি করতে পারেন যেখানে সম্পূর্ণ Navigation SDK UI উপযুক্ত নয়, যেমন ছোট স্ক্রিন ডিসপ্লের জন্য। যেমন, আপনি এটি দু-চাকার গাড়ির চালকদের জন্য ব্যবহার করতে পারেন, যেখানে আপনি তাদের গন্তব্যে দ্রুত এবং আরও আত্মবিশ্বাসের সাথে ন্যূনতম বিভ্রান্তির সাথে পৌঁছাতে সাহায্য করার জন্য শুধুমাত্র নেভিগেশন-ভিত্তিক নির্দেশিকা দেখাতে পারেন।
প্রয়োজনীয় নেভিগেশন ডিসপ্লে এলিমেন্ট
প্রতিটি নেভিগেশন ধাপের প্রাথমিক ফিল্ড হল রাস্তার পুরো নাম,
ম্যানুভার এবং ধাপের মোট দূরত্ব, যা
GMSNavigationStepInfo-এ উপলভ্য।
সামগ্রিক ট্রিপের জন্য, আপনি বর্তমান ধাপ বা গন্তব্যে পৌঁছানোর জন্য বাকি সময় এবং দূরত্ব
দেখাতে চাইতে পারেন, যার সবকটিই
GMSNavigationNavInfo-এ উপলভ্য।
ডানদিকের ছবিতে এই ধরনের প্রয়োজনীয় নেভিগেশন এলিমেন্টের উদাহরণ দেখানো হয়েছে।
ইভেন্ট লিসনার সেট-আপ করা
শুধুমাত্র নেভিগেশন ডেটা ব্যবহার করতে, আপনাকে didChangeNavInfo ইভেন্টের জন্য একটি ইভেন্ট লিসেনার প্রয়োগ করতে হবে। ইভেন্ট লিসেনারের মধ্যে, আপনার ব্যবহারকারীদের ধাপে ধাপে নেভিগেশন প্রদান করতে ট্রিপ এবং
ধাপের তথ্য অ্যাক্সেস করুন।
ইভেন্ট হ্যান্ডলার প্রয়োগ করতে, ম্যাপের ভিউ কন্ট্রোলারকে অবশ্যই
GMSNavigatorListener
প্রোটোকল প্রয়োগ করতে হবে। iOS-এর জন্য Navigation SDK-তে ইভেন্ট ম্যানেজ করার ব্যাপারে বিস্তারিত তথ্যের জন্য, নেভিগেশন ইভেন্ট শুনুন দেখুন।
didChangeNavInfo ইভেন্ট ম্যানেজ করা
আপনার অ্যাপে ধাপে ধাপে নেভিগেশন সংক্রান্ত সহায়তা যোগ করতে didChangeNavInfo ইভেন্টের জন্য একটি লিসনার তৈরি করুন।
ইভেন্ট লিসনারে, ধাপে ধাপে নেভিগেশন কন্ট্রোল করতে নিম্নলিখিত ক্লাস ও enum ব্যবহার করুন:
GMSNavigationNavInfo— নেভিগেশনের স্ট্যাটাস সম্পর্কে তথ্য সংজ্ঞায়িত করার ক্লাস।GMSNavigationStepInfo— নেভিগেশন রুটের একটি ধাপ সম্পর্কে তথ্য প্রদানকারী ক্লাস।GMSNavigationNavState— Enum যা নেভিগেশনের বর্তমান অবস্থা নির্ধারণ করে, যেমন, পথে, রুট পরিবর্তন করা হচ্ছে বা বন্ধ করা হয়েছে।GMSNavigationDrivingSide— এই ধাপটি ডানদিকে-ড্রাইভ-করুন নাকি বাঁদিকে-ড্রাইভ-করুন রুটে আছে তা নির্ধারণকারী Enum।GMSNavigationManeuver— Enum যা নেভিগেশন অ্যাকশনকে সংজ্ঞায়িত করে, যেমন বাঁদিকে বা ডানদিকে ঘোরা।
didChangeNavInfo ইভেন্টের জন্য ইভেন্ট লিসনারের উদাহরণ নিচে দেখানো হল:
Swift
// ViewController.swift class SomeViewController: UIViewController { ... mapView.navigator?.add(self); ... } extension SomeViewController: GMSNavigatorListener { func navigator(_ navigator: GMSNavigator, didUpdateNavInfo navInfo: GMSNavigationNavInfo) { // Get the current step information if navInfo.navState == .enroute { if let currentStep = navInfo.currentStep { ... roadNameLabel.text = currentStep.simpleRoadName ... } } } }
Objective-C
// ViewController.h @interface SomeViewController () <GMSNavigatorListener> @end // ViewController.m @implementation SomeViewController // Some initialization code. ... { ... [_mapView.navigator addListener:self]; ... } #pragma mark GMSNavigatorListener - (void)navigator:(GMSNavigator *)navigator didUpdateNavInfo:(GMSNavigationNavInfo *)navInfo { // Get the current step information if (navInfo.navState == GMSNavigationNavStateEnroute) { GMSNavigationStepInfo *currentStep = navInfo.currentStep; if (currentStep) { ... roadNameLabel.text = currentStep.simpleRoadName; ... } } ... }
নেভিগেশন স্টেট
নেভিগেশনের বর্তমান অবস্থা জানতে
GMSNavigationNavInfo-এর navState প্রপার্টি ব্যবহার করুন, যা নিম্নলিখিতগুলির মধ্যে একটি:
Enroute -
GMSNavigationNavStateEnrouteস্ট্যাটাস থেকে বোঝা যায় যে গাইডেড নেভিগেশন অ্যাক্টিভ আছে এবং ব্যবহারকারী প্রদত্ত রুটে আছেন। বর্তমান আসন্ন ম্যানুভার স্টেপ সম্পর্কে তথ্য উপলভ্য আছে।রুট পরিবর্তন করা হচ্ছে -
GMSNavigationNavStateReroutingমানে হল নেভিগেশন চলছে, কিন্তু নেভিগেটর নতুন রুট খুঁজছে। পরবর্তী ম্যানুভার স্টেপ উপলভ্য নেই, কারণ এখনও কোনও নতুন রুট নেই।বন্ধ হয়ে গেছে -
GMSNavigationNavStateStoppedমানে নেভিগেশন শেষ হয়ে গেছে। যেমন, ব্যবহারকারী অ্যাপে নেভিগেশন থেকে বেরিয়ে এলে নেভিগেশন বন্ধ হয়ে যায়। স্যাম্পেল অ্যাপে,GMSNavigationNavStateStoppedস্টেট নেভিগেশন তথ্য ডিসপ্লে মুছে দেয় যাতে ধাপে ধাপে নির্দেশাবলী দীর্ঘক্ষণ ধরে দেখানো না হয়।
লেন সংক্রান্ত নির্দেশিকা
Navigation SDK নেভিগেশন টার্ন কার্ডে লেনকে
GMSNavigationLane এবং GMSNavigationLaneDirection ডেটা অবজেক্ট হিসেবে দেখায়। GMSNavigationLane অবজেক্ট নেভিগেশনের সময় নির্দিষ্ট লেনকে দেখায় এবং
এতে GMSNavigationLaneDirection অবজেক্টের তালিকা থাকে যা এই লেন থেকে নেওয়া যেতে পারে এমন
সব বাঁকের বর্ণনা দেয়।
কোনও লেনে ড্রাইভারের কোন দিকে যাওয়া উচিত তা recommended ফিল্ড ব্যবহার করে চিহ্নিত করা হয়।

লেন সংক্রান্ত নির্দেশিকার উদাহরণ
নিচের স্নিপেটটি আগের স্ক্রিনশটে দেখানো লেনের ডেটা রিপ্রেজেন্টেশন ব্যাখ্যা করে।
// Lane 1
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeNormalLeft, /*recommended=*/ true}]
// Lane 2
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeNormalLeft, /*recommended=*/ true}]
// Lane 3
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeStraight, /*recommended=*/ false}]
// Lane 4
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeStraight, /*recommended=*/ false},
{/*GMSNavigationLaneShape=*/ GMSNavigationLaneShapeNormalRight, /*recommended=*/ false}]
লেন গাইডেন্সের ছবি
GMSNavigationStepInfo-এর মাধ্যমে জানানো প্রতিটি নেভিগেশন ধাপের জন্য নেভিগেশন SDK, লেনের ছবি তৈরি করতে সাহায্য করে। এইসব আইকন CarPlay-এর ছবির সাইজ সংক্রান্ত
নির্দেশিকা অনুযায়ী তৈরি করা হয়েছে।
Swift
let currentStepInfo = navInfo.currentStep let options = GMSNavigationStepImageOptions() options.maneuverImageSize = .square96 options.screenMetrics = UIScreen.mainScreen let maneuverImage = currentStepinfo.maneuverImage(options: options)
Objective-C
GMSNavigationStepInfo *stepInfo = navInfo.currentStep; GMSNavigationStepImageOptions *options = [[GMSNavigationStepImageOptions alloc] init]; options.maneuverImageSize = GMSNavigationManeuverImageSizeSquare96; options.screenMetrics = UIScreen.mainScreen; UIImage* maneuverImage = [stepInfo maneuverImageWithOptions:options];
ম্যানুভারের জন্য আইকন তৈরি করা হচ্ছে
![]()
GMSNavigationManeuver
enum নেভিগেট করার সময় সম্ভাব্য প্রতিটি ম্যানুভারকে সংজ্ঞায়িত করে এবং আপনি
GMSNavigationStepInfo-এর maneuver প্রপার্টি থেকে
প্রদত্ত ধাপের জন্য ম্যানুভার পেতে পারেন।
আপনাকে অবশ্যই ম্যানুভার আইকন তৈরি করতে হবে এবং সেগুলিকে তাদের সংশ্লিষ্ট ম্যানুভারের সাথে পেয়ার করতে হবে।
কিছু ম্যানুভারের জন্য, আপনি একটি আইকনে ওয়ান-টু-ওয়ান ম্যাপিং সেট-আপ করতে পারেন, যেমন
GMSNavigationManeuverDestinationLeft এবং
GMSNavigationManeuverDestinationRight। তবে, কিছু ম্যানুভারের বৈশিষ্ট্য অন্যান্য ম্যানুভারের সাথে মিলে যায় বলে, আপনি হয়ত একটি আইকনে একাধিক ম্যানুভার ম্যাপ করতে চাইবেন। যেমন, GMSNavigationManeuverTurnLeft এবং
GMSNavigationManeuverOnRampLeft দুটিই বাঁদিকে ঘোরার আইকনে ম্যাপ করা যেতে পারে।
কিছু ম্যানুভারে অতিরিক্ত "ঘড়ির কাঁটার দিকে" বা "ঘড়ির কাঁটার বিপরীতে" লেবেল থাকে, যা SDK কোনও দেশের ড্রাইভিং সাইডের উপর ভিত্তি করে নির্ধারণ করে। যেমন, যেসব দেশে রাস্তার বাঁদিক দিয়ে গাড়ি চালানো হয়, সেখানে ড্রাইভাররা ঘড়ির কাঁটার দিকে রাউন্ডঅ্যাবাউট বা ইউ-টার্ন নেন, অন্যদিকে রাস্তার ডানদিক দিয়ে গাড়ি চালানো হয় এমন দেশে ঘড়ির কাঁটার বিপরীতে ঘোরা হয়। বাঁদিক বা ডানদিকের ট্রাফিকে কোনও ম্যানুভার হচ্ছে কিনা তা Navigation SDK শনাক্ত করে এবং উপযুক্ত ম্যানুভার আউটপুট হিসেবে দেখায়। তাই, ঘড়ির কাঁটার দিকে ও ঘড়ির কাঁটার বিপরীতে দিক পরিবর্তনের জন্য আপনার দিক পরিবর্তন আইকন আলাদা হতে পারে।
বিভিন্ন ম্যানুভারের জন্য উদাহরণ আইকন দেখতে বড় করুন
| স্যাম্পেল আইকন | এক এক করে ম্যানুভার |
|---|---|
![]() |
DEPARTUNKNOWN |
![]() |
STRAIGHTON_RAMP_UNSPECIFIEDOFF_RAMP_UNSPECIFIEDNAME_CHANGE
|
![]() |
TURN_RIGHTON_RAMP_RIGHT
|
![]() |
TURN_LEFTON_RAMP_LEFT
|
![]() |
TURN_SLIGHT_RIGHTON_RAMP_SLIGHT_RIGHTOFF_RAMP_SLIGHT_RIGHT
|
![]() |
TURN_SLIGHT_LEFTON_RAMP_SLIGHT_LEFTOFF_RAMP_SLIGHT_LEFT
|
![]() |
TURN_SHARP_RIGHTON_RAMP_SHARP_RIGHTOFF_RAMP_SHARP_RIGHT
|
![]() |
TURN_SHARP_LEFTON_RAMP_SHARP_LEFTOFF_RAMP_SHARP_LEFT
|
![]() |
TURN_U_TURN_COUNTERCLOCKWISEON_RAMP_U_TURN_COUNTERCLOCKWISEOFF_RAMP_U_TURN_COUNTERCLOCKWISE
|
![]() |
TURN_U_TURN_CLOCKWISEON_RAMP_U_TURN_CLOCKWISEOFF_RAMP_U_TURN_CLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_RIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_RIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_RIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_RIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_RIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_RIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_STRAIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_STRAIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_LEFT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_LEFT_CLOCKWISE
|
![]() |
ROUNDABOUT_LEFT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_LEFT_CLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_LEFT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_LEFT_CLOCKWISE
|
![]() |
ROUNDABOUT_U_TURN_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_U_TURN_CLOCKWISE
|
![]() |
ROUNDABOUT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_CLOCKWISE
|
![]() |
ROUNDABOUT_EXIT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_EXIT_CLOCKWISE
|
![]() |
MERGE_RIGHTOFF_RAMP_RIGHT
|
![]() |
MERGE_LEFTOFF_RAMP_LEFT
|
![]() |
FORK_RIGHTTURN_KEEP_RIGHTON_RAMP_KEEP_RIGHTOFF_RAMP_KEEP_RIGHT
|
![]() |
FORK_LEFTTURN_KEEP_LEFTON_RAMP_KEEP_LEFTOFF_RAMP_KEEP_LEFT
|
![]() |
MERGE_UNSPECIFIED
|
![]() |
DESTINATION
|
![]() |
DESTINATION_RIGHT
|
![]() |
DESTINATION_LEFT
|
![]() |
FERRY_BOAT
|
![]() |
FERRY_TRAIN
|
জেনারেট করা আইকন ব্যবহার করুন
Navigation SDK, প্রদত্ত
GMSNavigationStepInfo-এর জন্য ম্যানুভার আইকন তৈরি করতে সাহায্য করে। এইসব আইকন CarPlay-এর ছবির সাইজ সংক্রান্ত
নির্দেশিকা মেনে চলে।
Swift
let currentStepInfo = navInfo.currentStep let options = GMSNavigationStepImageOptions() options.maneuverImageSize = .square96 options.screenMetrics = UIScreen.mainScreen let maneuverImage = currentStepinfo.maneuverImage(options: options)
Objective-C
GMSNavigationStepInfo *stepInfo = navInfo.currentStep; GMSNavigationStepImageOptions *options = [[GMSNavigationStepImageOptions alloc] init]; options.maneuverImageSize = GMSNavigationManeuverImageSizeSquare96; options.screenMetrics = UIScreen.mainScreen; UIImage* maneuverImage = [stepInfo maneuverImageWithOptions:options];







































