কাস্টমাইজড নির্দেশিকা তৈরি করুন

এই পৃষ্ঠায় কাস্টম নেভিগেশন অভিজ্ঞতার অংশ হিসেবে কাস্টমাইজড নির্দেশিকা তৈরি করতে আপনি যে উচ্চ-স্তরের পদক্ষেপগুলি অনুসরণ করেন তা কভার করা হয়েছে।

এই প্রক্রিয়াটি "একটি রুট নেভিগেট করুন" এ বর্ণিত প্রক্রিয়া থেকে নিম্নরূপ পৃথক:

  • প্রথমে আপনি স্বাধীনভাবে একটি নেভিগেশন সেশন স্থাপন করুন এবং ভিউ কন্ট্রোলারকে কল করার পরিবর্তে সেশনের মাধ্যমে একটি নেভিগেটর ইনস্ট্যান্স পান।
  • নেভিগেশন ইভেন্টগুলিতে সাড়া দেওয়ার এবং পরিচালনা করার জন্য আপনি একটি ইভেন্ট শ্রোতা সেট আপ করেন।
  1. GMSNavigationService.createNavigationSession ব্যবহার করে একটি নেভিগেশন সেশন তৈরি করুন এবং একটি setDestination কল দিয়ে নেভিগেশন শুরু করুন। যেখানে Google নেভিগেশন অভিজ্ঞতা নেভিগেটরকে নেভিগেশন ম্যাপ ভিউয়ের মাধ্যমে আহ্বান করে, GMSNavigationServices একটি UI ইনস্ট্যান্স থেকে স্বাধীনভাবে একটি নেভিগেশন সেশন থেকে ইভেন্টের একটি স্ট্রিম নিয়ন্ত্রণ করে এবং গ্রহণ করে। এর অর্থ হল এটি হয় UI ছাড়াই চলতে পারে, অথবা যেকোনো UI-ভিত্তিক অভিজ্ঞতায় স্থানান্তরিত হতে পারে। এই পদ্ধতির মাধ্যমে, আপনার অ্যাপে নেভিগেশন সেশন চলতে থাকে যতক্ষণ না শেষ রেফারেন্সটি এটি থেকে সরানো হয়।

  2. একটি রোড-স্ন্যাপড লোকেশন প্রোভাইডার স্থাপন করুন । যদি আপনি চান যে আপনার অ্যাপটি ক্রমাগত লোকেশন মনিটরিং করুক, যেমন রুট বরাবর নীল বিন্দু সহ নেভিগেশন ভিউ প্রদর্শন করার সময়, তাহলে লোকেশন প্রোভাইডার ব্যবহার করুন।

  3. GMSNavigatorListener প্রোটোকল বাস্তবায়নের মাধ্যমে বিস্তারিত পালাক্রমে নির্দেশনার জন্য একজন শ্রোতা সেট আপ করুন । তারপর, আপনার কাস্টম নেভিগেশন অভিজ্ঞতার জন্য প্রয়োজনীয় তথ্যে সেই তথ্য রূপান্তর করুন। উদাহরণস্বরূপ:

    1. নির্দেশাবলীর সহজ স্ক্রিন কাস্টিংয়ের জন্য শুধুমাত্র টেক্সট-ফিল্ডগুলি প্রয়োগ করুন।
    2. আপনার নিজস্ব UI এর জন্য ক্ষেত্রগুলি ডিজাইন এবং পূরণ করুন।
  4. একটি নেভিগেশন সিমুলেটর সেট আপ করুন । এটি ডেভেলপমেন্ট এবং পরীক্ষার জন্য প্রয়োজনীয়।

একটি স্বাধীন নেভিগেশন সেশন তৈরি করুন

ডেমো থেকে নিম্নলিখিত কোড স্নিপেটটি ভিউ কন্ট্রোলার থেকে স্বাধীনভাবে প্রতিষ্ঠিত নেভিগেশন দেখায়। এরপর কোডটি বর্তমান রাস্তা-স্ন্যাপ করা অবস্থান দেখানোর জন্য কনফিগার করা একটি ওভারভিউ মানচিত্র যোগ করে।

// 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 অভিজ্ঞতায় নেভিগেশন স্থানান্তর করা

এই কোড স্নিপেটটি দেখায় যে কীভাবে আপনার অ্যাপ ব্যবহারকারীকে একটি কাস্টম নেভিগেশন অভিজ্ঞতা থেকে গুগল নেভিগেশন অভিজ্ঞতায় প্রবেশের অনুমতি দিতে পারে। এই কোড স্নিপেটটি মানচিত্র ভাগ করে নেওয়ার সময় আপনার অ্যাপ কীভাবে এই রূপান্তরটি করে তাও দেখায়।

`UIButton *button = [UIButton buttonWithType:UIButtonTypePlain`];

[`button addTarget:self action:@selector(didTapEnterGoogleNavigationButton:)
forControlState:[_directionsButton addTarget:self`];

`…`

[`_mapView enableNavigationWithSession:_navigationSession`];