এই পৃষ্ঠাটি একটি কাস্টম নেভিগেশন অভিজ্ঞতার অংশ হিসাবে কাস্টমাইজড নির্দেশিকা তৈরি করতে আপনি অনুসরণ করেন এমন উচ্চ-স্তরের পদক্ষেপগুলি কভার করে৷
এই প্রক্রিয়াটি নিম্নরূপ একটি রুটে নেভিগেট করার প্রক্রিয়া থেকে পৃথক:
- আপনি প্রথমে স্বাধীনভাবে একটি নেভিগেশন সেশন স্থাপন করুন এবং ভিউ কন্ট্রোলারকে কল করার পরিবর্তে সেশনের মাধ্যমে একটি নেভিগেটর ইনস্ট্যান্স পান।
- নেভিগেশন ইভেন্টগুলিতে প্রতিক্রিয়া এবং পরিচালনা করার জন্য আপনি একটি ইভেন্ট শ্রোতা সেট আপ করুন৷
-
GMSNavigationService.createNavigationSession
ব্যবহার করে একটি নেভিগেশন সেশন তৈরি করুন এবং একটিsetDestination
কল দিয়ে নেভিগেশন শুরু করুন। যেখানে Google নেভিগেশন অভিজ্ঞতা নেভিগেটরকে নেভিগেশন ম্যাপ ভিউয়ের মাধ্যমে আমন্ত্রণ জানায়, সেখানেGMSNavigationServices
একটি UI দৃষ্টান্ত থেকে স্বাধীনভাবে নেভিগেশন সেশন থেকে ইভেন্টের একটি স্ট্রিম নিয়ন্ত্রণ করে এবং গ্রহণ করে। এর মানে হল এটি একটি UI ছাড়াই চলতে পারে, অথবা যেকোনো UI-ভিত্তিক অভিজ্ঞতায় পাস করা যেতে পারে। এই পদ্ধতির সাথে, নেভিগেশন সেশনটি আপনার অ্যাপে চলতে থাকে যতক্ষণ না এটি থেকে শেষ রেফারেন্সটি সরানো হয়। - একটি রোড-স্ন্যাপড লোকেশন প্রদানকারী স্থাপন করুন । আপনি যদি আপনার অ্যাপকে ক্রমাগত অবস্থান পর্যবেক্ষণ করতে চান, যেমন রুট বরাবর একটি নীল বিন্দু সহ একটি নেভিগেশন ভিউ প্রদর্শন করতে চাইলে অবস্থান প্রদানকারী ব্যবহার করুন।
-
GMSNavigatorListener
প্রোটোকল প্রয়োগ করে বিস্তারিত পালাক্রমে নির্দেশনার জন্য একজন শ্রোতা সেট আপ করুন । তারপর, আপনার কাস্টম নেভিগেশন অভিজ্ঞতার জন্য যা যা প্রয়োজন সেই তথ্যটিকে রূপান্তর করুন। যেমন:- দিকনির্দেশের সহজ স্ক্রিন কাস্টিংয়ের জন্য শুধুমাত্র পাঠ্য ক্ষেত্রগুলি প্রয়োগ করুন৷
- আপনার নিজস্ব UI এর জন্য ক্ষেত্রগুলি ডিজাইন এবং পপুলেট করুন।
- একটি নেভিগেশন সিমুলেটর সেট আপ করুন । এটি উন্নয়ন এবং পরীক্ষার জন্য প্রয়োজনীয়।
একটি স্বাধীন নেভিগেশন সেশন তৈরি করুন
ডেমো থেকে নিম্নলিখিত কোড স্নিপেট ভিউ কন্ট্রোলার থেকে স্বাধীনভাবে প্রতিষ্ঠিত নেভিগেশন দেখায়। কোডটি তখন বর্তমান রাস্তার স্ন্যাপ করা অবস্থান দেখানোর জন্য কনফিগার করা একটি ওভারভিউ ম্যাপ যোগ করে।
// Create the navigation session.
_navigationSession = [GMSNavigationServices createNavigationSession];
GMSRoadSnappedLocationProvider *roadSnappedLocationProvider =
_navigationSession.roadSnappedLocationProvider;
[roadSnappedLocationProvider startUpdatingLocation];
GMSNavigator *navigator = _navigationSession.navigator;
[navigator addListener:self];
navigator.voiceGuidance = GMSNavigationVoiceGuidanceSilent;
navigator.sendsBackgroundNotifications = NO;
_navigationSession.started = YES;
[navigator setDestinations:@[ destination ]
callback:^(GMSRouteStatus routeStatus) {
// …handle changes in route status.
}];
// Add an overview map.
_mapView = [[GMSMapView alloc] initWithFrame:CGRectZero];
[self.mainStackView addArrangedSubview:_mapView];
[self.mainStackView setNeedsLayout];
_mapView.settings.compassButton = YES;
_mapView.delegate = self;
_mapView.myLocationEnabled = YES;
_mapView.roadSnappedMyLocationSource = roadSnappedLocationProvider;
একটি কাস্টম অভিজ্ঞতা থেকে Google অভিজ্ঞতায় নেভিগেশন পাস করা
এই কোড স্নিপেটটি ব্যাখ্যা করে যে কীভাবে আপনার অ্যাপ ব্যবহারকারীকে একটি কাস্টম নেভিগেশন অভিজ্ঞতা থেকে Google নেভিগেশন অভিজ্ঞতায় প্রবেশ করার অনুমতি দিতে পারে। এই কোড স্নিপেট এছাড়াও দেখায় কিভাবে আপনার অ্যাপ মানচিত্র ভাগ করার সময় এই রূপান্তর করে।
`UIButton *button = [UIButton buttonWithType:UIButtonTypePlain`];
[`button addTarget:self action:@selector(didTapEnterGoogleNavigationButton:)
forControlState:[_directionsButton addTarget:self`];
`…`
[`_mapView enableNavigationWithSession:_navigationSession`];