কাস্টম নেভিগেশন কি?

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

কাস্টম নেভিগেশন অভিজ্ঞতা কি?

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

    ডেমো দেখুন: ন্যাভিগেশন SDK-এর ডাউনলোডে একটি ডেমো রয়েছে যা আপনি একটি ন্যাভিগেশন অভিজ্ঞতার উদাহরণ দেখতে চালাতে পারেন যা স্ট্যান্ডার্ড নেভিগেশনের মাধ্যমে একটি ন্যাভিগেশন অভিজ্ঞতার মাধ্যমে টার্ন-বাই-টার্ন গাইডেন্সের মধ্যে স্যুইচ করে যা শুধুমাত্র একটি রাস্তা ধরে চলা ডিভাইসের অবস্থান দেখায় পলিলাইন

  • সক্রিয় নেভিগেশন-আপনি প্রদান করেন । এখানে একটি Google-প্রদত্ত নেভিগেশন অভিজ্ঞতা এবং একটি কাস্টম নেভিগেশন অভিজ্ঞতার মধ্যে আরেকটি মূল পার্থক্য রয়েছে৷ নেভিগেশন SDK-এর অন্তর্নির্মিত ইভেন্ট ম্যানেজারের কাছে নির্দেশিকা হস্তান্তর করার পরিবর্তে, আপনি পালাক্রমে ফিড সক্ষম করুন এবং GMSNavigatorListener এর মাধ্যমে ইভেন্ট হ্যান্ডলারগুলিকে প্রয়োগ করুন৷ এটি আপনার অভিজ্ঞতাকে নেভিগেশন ইভেন্টের জন্য Listen- এ বর্ণিত ইভেন্টগুলিতে সাড়া দেওয়ার অনুমতি দেয়।

  • নেভিগেশন শেষ করুন—আপনি প্রদান করেন । Google নেভিগেশন অভিজ্ঞতার মতো, কাস্টম নেভিগেশনের জন্য আপনাকে অ্যাপের অভিজ্ঞতার জন্য সবচেয়ে উপযুক্ত পদ্ধতিতে নেভিগেশন বন্ধ করতে হবে।

নিম্নলিখিত সারণী কিছু কাস্টম নেভিগেশন পরিস্থিতি বর্ণনা করে।

উদাহরণ দৃশ্যকল্প

উচ্চ-স্তরের পদক্ষেপ

আপনাকে 2-চাকার যানবাহনের মতো ছোট ডিভাইসগুলির জন্য শুধুমাত্র পাঠ্য-চালক নির্দেশিকা প্রদান করতে হবে।

আপনার ন্যাভিগেটর তৈরি করুন এবং একটি ছোট স্ক্রীন ডিভাইসে ডাটা ফিড হিসাবে টার্ন-বাই-টার্ন গাইডেন্স সেট আপ করুন যখন নেভিগেটর তাদের তাত্ক্ষণিক দৃশ্যের বাইরে ড্রাইভারের সেল ফোনে চলে। পালাক্রমে ডেটা ফিড সক্ষম করুন দেখুন।

আপনার অ্যাপ ব্যবহারকারী ড্রাইভাররা তাদের বেশিরভাগ যাত্রার জন্য একটি ওভারভিউ ম্যাপ চায়, শুধুমাত্র শহরের রাস্তার জন্য ন্যূনতম টার্ন-বাই-টার্ন গাইডেন্স সহ।

গন্তব্য এবং ট্রিপ মোডের জন্য নেভিগেটরের সেটিংস পরিবর্তন না করেই আপনার অ্যাপটি ড্রাইভারদের তাদের প্রয়োজনমতো Google নেভিগেশন অভিজ্ঞতায় প্রবেশ এবং প্রস্থান করার অনুমতি দেবে।

গতিশীলতা পরিষেবার গ্রাহকদের জন্য : ড্রাইভাররা প্রায়শই উচ্চ পরিচিতির সাথে প্রতিষ্ঠিত রুটে ভ্রমণ করে এবং তাদের কোন নির্দেশনার প্রয়োজন হয় না, তবে আপনার যানবাহন ব্যবস্থাপনা সিস্টেম ডেলিভারি বা ট্রিপ পরিচালনা করতে পারে তা নিশ্চিত করার জন্য আপনার একটি উপায় প্রয়োজন।

একটি নেভিগেটর সেট আপ করুন. গন্তব্য সেট করুন এবং অবস্থান আপডেট পান। আপনার অ্যাপে ড্রাইভার SDK ইন্টিগ্রেট করুন। বিশদ বিবরণের জন্য, অন-ডিমান্ড রাইডস এবং ডেলিভারি বা লাস্ট মাইল ফ্লিট সলিউশনের জন্য ড্রাইভার SDK দিয়ে শুরু করা দেখুন।

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

কাস্টমাইজড নির্দেশিকা তৈরি করতে আপনি যে উচ্চ-স্তরের পদক্ষেপগুলি অনুসরণ করেন তা এই বিভাগে কভার করে৷

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

  • আপনি প্রথমে স্বাধীনভাবে একটি নেভিগেশন সেশন স্থাপন করুন এবং ভিউ কন্ট্রোলারকে কল করার পরিবর্তে সেশনের মাধ্যমে একটি নেভিগেটর ইনস্ট্যান্স পান।
  • নেভিগেশন ইভেন্টগুলিতে প্রতিক্রিয়া এবং পরিচালনা করার জন্য আপনি একটি ইভেন্ট শ্রোতা সেট আপ করুন৷

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

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

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

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

`…`

[`_mapView enableNavigationWithSession:_navigationSession`];