কাস্টম নেভিগেশন অভিজ্ঞতার অংশ হিসেবে কাস্টমাইজ করা নির্দেশিকা তৈরি করার জন্য আপনি যেসব হাই-লেভেল ধাপ অনুসরণ করেন, এই পৃষ্ঠায় সেগুলি কভার করা হয়েছে।
এই প্রসেসটি রুট নেভিগেট করুন-এ বর্ণিত প্রসেসের থেকে আলাদা, যা নিচে উল্লেখ করা হল:
- আপনি প্রথমে স্বতন্ত্রভাবে একটি নেভিগেশন সেশন স্থাপন করেন এবং ভিউ কন্ট্রোলারকে কল করার পরিবর্তে সেশনের মাধ্যমে একটি নেভিগেটর ইনস্ট্যান্স পান।
- নেভিগেশন ইভেন্টের উত্তর দিতে ও তা ম্যানেজ করতে আপনি একটি ইভেন্ট লিসনার সেট-আপ করেন।
GMSNavigationService.createNavigationSessionব্যবহার করে নেভিগেশন সেশন তৈরি করুন এবংsetDestinationকল করে নেভিগেশন শুরু করুন। যেখানে Google নেভিগেশন অভিজ্ঞতা নেভিগেশন ম্যাপ ভিউয়ের মাধ্যমে নেভিগেটরকে আহ্বান করে, সেখানেGMSNavigationServicesUI ইনস্ট্যান্স থেকে স্বাধীনভাবে নেভিগেশন সেশন থেকে ইভেন্টের স্ট্রিম কন্ট্রোল ও রিসিভ করে। এর অর্থ হল, এটি 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`];