প্রায়শই জিজ্ঞাসিত প্রশ্ন

প্রোডাক্টের বিবরণ

সমস্যা

নেটওয়ার্ক

ডেটা

UI কাস্টমাইজেশন

রাউটিং

সিমুলেটার

ওয়ার্কফ্লো

মবিলিটি পরিষেবা

প্রোডাক্টের বিবরণ

আপনার অ্যাপে নেভিগেশন SDK পরিষেবার শর্তাবলী সহ একটি ডায়ালগ বক্স থাকতে হবে যা প্রতিটি ড্রাইভারকে মেনে নিতে হবে। এই ডায়ালগ ড্রাইভারকে পরিষেবার শর্তাবলীতে সম্মতি জানানোর সুযোগ দেয়। Navigation SDK-এর সাথে শর্তাবলীর একটি টেক্সট ফাইল প্রদান করা হয়।
Android-এ, শর্তাবলী সহ ডায়ালগ দেখানোর জন্য NavigationApi.showTermsAndConditionsDialog মেথড ব্যবহার করুন।
iOS-এ, কল করুন GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName।
Google Maps Mobile-এ কাজ করে এমন যেকোনও ভাষা Navigation SDK-তে অটোমেটিক উপলভ্য হয়। ডিভাইসে একটি ডিফল্ট সিস্টেম ভাষা থাকে এবং কোনও অ্যাপ সেই সেটিং পরিবর্তন করতে পারে না; তবে, অ্যাপটির কাছে ৭০টিরও বেশি ভাষার অ্যাক্সেস আছে।

হ্যাঁ। Android-এ, একবার শুরু হলে, LocationListener ব্যাকগ্রাউন্ডে চলতে থাকে। আপনার অ্যাপ রাস্তার অবস্থান স্ন্যাপ করা এবং বিয়ারিং বজায় রাখা চালিয়ে যায়।

iOS-এ, ব্যাকগ্রাউন্ডে পজিশন ও বিয়ারিং সংক্রান্ত লোকেশন আপডেট পাওয়া চালিয়ে যেতে, রোড স্ন্যাপিং প্রয়োগ করুন এবং allowsBackgroundLocationUpdates-কে YES হিসেবে সেট করুন।

হ্যাঁ। কোনও রুট তৈরি বা পরিবর্তন করা হলে, RouteChangeListener পলিলাইন প্রদান করে।

না, Navigation SDK-এর জন্য ডিভাইসে Google Maps Mobile ইনস্টল করার প্রয়োজন নেই।
না, এই মুহূর্তে Navigation SDK এই ফাংশনালিটি প্রদান করে না।
হ্যাঁ। ট্রাফিক দিকনির্দেশ উপলভ্য এবং ডিফল্ট হিসেবে দেখানো হয়।

সমস্যা

Xcode 12-এ, অ্যাপগুলি সিমুলেটরের জন্য সঠিকভাবে বিল্ড হয় না। আমি কীভাবে এটির সমাধান করতে পারব?

এই সমস্যার সমাধান করতে, আপনার Xcode প্রোজেক্টের বিল্ড সেটিংস খুলুন এবং শুধুমাত্র "iOS Simulator" বিল্ডের জন্য Excluded Architectures arm64 যোগ করুন।

আরও তথ্যের জন্য, নিম্নলিখিত StackOverflow থ্রেড দেখুন।

GMSMapView লোড হয় না।

GMSMapView লোড না হলে:

  • Cloud Console-এ NavSDK চালু আছে কিনা তা চেক করুন।
  • Nav SDK ইনস্টল করা থাকলে, কিন্তু আপনার প্রোজেক্ট Nav SDK API ব্যবহার না করলে, আপনার বাইনারি থেকে এটি সরিয়ে দিন।

নেটওয়ার্ক

খারাপ কানেক্টিভিটি হলে নেভিগেশন SDK কীভাবে কাজ করে?
নেভিগেশন SDK প্রতিটি যাত্রার জন্য রুট প্রি-ক্যাশ করে। প্রি-ক্যাশে করা তথ্যে ১৫-২০ মিনিটের জন্য রাউটিং তথ্য এবং ড্রাইভার রুট থেকে সরে গেলে বিকল্প রুটের তথ্য অন্তর্ভুক্ত থাকে। Navigation SDK, ডিভাইসের জিপিএস ও সেন্সর ব্যবহার করে আনুমানিক পজিশন নির্ণয় করে।
অফলাইন মোড কি উপলভ্য?
না, Navigation SDK বর্তমানে অফলাইন মোড অফার করে না; তবে, SDK কোনও জার্নির জন্য আগে থেকে ক্যাশে করা তথ্য প্রদান করে।

ডেটা

আমি কি রুট শুরু করার আগে যাত্রাপথের সব স্টপ/গন্তব্য দেখতে পাব?

হ্যাঁ। Android-এ, কোনও রুটের দিকনির্দেশ পেতে, Navigator.getRouteSegments() কল করুন।

iOS-এ, GMSNavigator.routeLegs(read)-কে কল করুন।

রুট শুরু হওয়ার সময় কি এক এক করে রুট সংক্রান্ত নির্দেশিকা উপলভ্য?
হ্যাঁ। নেভিগেশন SDK রুটের সেগমেন্টের একটি তালিকা প্রদান করে। এছাড়াও, ড্রাইভার প্রতিটি ম্যানুভার দেখতে হেডার থেকে দিকনির্দেশ কার্ডে সোয়াইপ করতে পারবেন।
অ্যাপ ব্যবহারকারীদের ETA কীভাবে জানানো হয়?

Android-এ, অ্যাপ ব্যবহারকারীদের ETA সংক্রান্ত তথ্য দিতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. Navigator.getTimeAndDistanceList() ব্যবহার করে সবকটি ওয়েপয়েন্টের জন্য সময় ও দূরত্ব রিট্রিভ করুন।
  2. আপনি ড্রাইভারের ETA-এর জন্য যেভাবে করেন, সেইভাবে এই তথ্য ক্লায়েন্ট অ্যাপ্লিকেশনে ফরওয়ার্ড করুন।

iOS-এ, অ্যাপ ব্যবহারকারীদের ETA সংক্রান্ত তথ্য দিতে এইসব ধাপ ব্যবহার করুন:

  1. Navigator.getRouteSegments() ব্যবহার করে যাত্রার লেগগুলি রিট্রিভ করুন।
  2. প্রতিটি জার্নি লেগের জন্য GMSNavigator.timeToNextDestination কল করুন।
  3. আপনি ড্রাইভারের ETA-এর জন্য যেভাবে করেন, সেইভাবে ক্লায়েন্ট অ্যাপ্লিকেশনকে সময়ের তথ্য ফরওয়ার্ড করুন।
নেভিগেশন ফোরগ্রাউন্ডে না থাকলে, ড্রাইভারের বর্তমান স্ন্যাপ করা লোকেশন পেতে কি RoadSnappedLocationProvider ব্যবহার করা যেতে পারে?

হ্যাঁ। Android-এ, RoadSnappedLocationProvider ডিফল্ট হিসেবে ব্যাকগ্রাউন্ডে চলে।

iOS-এ, ব্যাকগ্রাউন্ডে নেভিগেশন চালু রাখতে, GMSRoadSnappedLocationProviderListener-এর জন্য লিসনার ইমপ্লিমেন্ট করুন এবং allowsBackgroundLocationUpdates প্রপার্টিকে TRUE হিসেবে সেট করুন।

নেভিগেশন SDK কি জিওফেন্সিং সাপোর্ট করে?

না। নেভিগেশনের ক্ষেত্রে, remainingTimeOrdistanceChangeListener জিওফেন্সের থেকে বেশি সুবিধা দেয়। জিওফেন্সে রাস্তার জ্যামিতি বিবেচনা করা নাও হতে পারে এবং ড্রাইভার যে নির্দিষ্ট পয়েন্টে নেভিগেট করছেন, সেটি কেন্দ্র করে নাও থাকতে পারে।

আপনি remainingTimeOrdistanceChangeListener ব্যবহার করে এই কার্যকারিতা আনুমানিক করতে পারবেন।

  1. কলব্যাক কত ঘন ঘন হবে তা নির্ধারণ করতে থ্রেশহোল্ড সেট করুন।
  2. গন্তব্যের দূরত্ব কত বাকি আছে তা চেক করুন।

যেমন, আপনি যদি থ্রেশহোল্ড ১০০ মিটারে সেট করেন, তাহলে গন্তব্যের দূরত্ব ১০০ মিটার পরিবর্তিত হলে আপনি একটি কলব্যাক পাবেন। দূরত্ব যত কমতে থাকে, আপনি এই থ্রেশহোল্ডকে আরও ছোট মানে আপডেট করতে পারেন এবং আরও ঘনঘন কলব্যাক পেতে পারেন। তারপরে, পিক-আপ/ড্রপ-অফ লোকেশনের কাছাকাছি আছেন কিনা তা নির্ধারণ করতে বাকি দূরত্বটি ভাল করে দেখে নিন।

iOS-এ, বিজ্ঞপ্তির মধ্যে দূরত্ব ম্যানেজ করতে, লিসনার GMSNavigatorListener.didUpdateRemainingDistance ইমপ্লিমেন্ট করুন।

নেভিগেশন অ্যাপ ব্যাকগ্রাউন্ডে থাকলে আমি কি বিজ্ঞপ্তি বন্ধ করতে পারি?

হ্যাঁ। Android-এ, বিজ্ঞপ্তি কন্ট্রোল করতে Navigator.setHeadsUpNotificationEnabled ব্যবহার করুন। এই পদ্ধতিতে একটি বুলিয়ান আর্গুমেন্ট আছে। FALSE বিজ্ঞপ্তি বন্ধ করে দেয়; TRUE বিজ্ঞপ্তি চালু করে।

iOS-এ, রোড-স্ন্যাপ করা লোকেশনের জন্য ব্যাকগ্রাউন্ড বিজ্ঞপ্তি বন্ধ করতে, GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates বিকল্পকে NO হিসেবে সেট করুন।

অন্যান্য লোকেশন বিজ্ঞপ্তির জন্য ব্যাকগ্রাউন্ড প্রসেসিং বন্ধ করতে, GMSNavigator.sendsBackgroundNotifications(NO)-এ কল করুন।

UI কাস্টমাইজেশন

আমি কি সেরা রুট বিকল্পে কালার কোড ব্যবহার করতে পারি?
না। নির্দিষ্ট কোনও রুটের বিকল্পে কালার কোডিং করার সুবিধা বর্তমানে উপলভ্য নেই।
Navigation SDK কি চূড়ান্ত গন্তব্যের ETA দেখাতে পারে?

হ্যাঁ। Android-এ, নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করুন:

  1. Navigator.getTimeAndDistanceList() ব্যবহার করে সবকটি ওয়েপয়েন্টের জন্য সময় ও দূরত্ব রিট্রিভ করুন।
  2. NavigationFragment.setEtaCardEnabled(false) ব্যবহার করে বর্তমান ওয়েপয়েন্টের ETA লুকান।
  3. গন্তব্যে পৌঁছানোর আনুমানিক সময় রেন্ডার করো।

iOS-এ, নিম্নলিখিতগুলি ব্যবহার করুন:

  1. GMSNavigator.routeLegs(read)-এ কল করুন।
  2. শেষ ধাপে, GMSNavigator.timeToNextDestination-কে কল করুন।
  3. MSMapView.settings.navigationFooterEnabled=NO-এর মান FALSE করে বর্তমান ওয়েপয়েন্টের ETA লুকান।
  4. গন্তব্যে পৌঁছানোর আনুমানিক সময় রেন্ডার করো।
আমি কীভাবে ETA আপডেট লুকাতে পারি?

আপনি নিম্নলিখিত পদ্ধতিতে ETA কার্ড বন্ধ করতে পারবেন:

  • Android-এ, navigationView.setEtaCardEnabled(false) ব্যবহার করুন।
  • iOS-এ, GMSMapView.settings.navigationFooterEnabled=NO ব্যবহার করুন।
হেডার ও ফুটার কার্ডের জন্য কোন কোন UI কাস্টমাইজেশন উপলভ্য?

Android-এ, ব্যাকগ্রাউন্ড কালার স্টাইলিং সেট করতে আপনি StylingOptions ব্যবহার করেন। হেডার ও ফুটার লুকাতে বা দেখাতে, setHeaderEnabled ও setFooterEnabled মেম্বার ফাংশন ব্যবহার করুন NavigationFragment।

iOS-এ, ব্যাকগ্রাউন্ডের রঙের স্টাইলিং সেট করতে GMSMapView.settings.navigationHeaderPrimaryBackgroundColor ব্যবহার করুন। হেডার ও ফুটার লুকাতে বা দেখাতে GMSUISettings-এর navigationFooterEnabled ও navigationHeaderEnabled প্রপার্টি ব্যবহার করুন।

রাউটিং

আমি কি ড্রাইভারকে নির্দিষ্ট রুট সম্পর্কে জানাতে বা বিকল্প রুট সরিয়ে দিতে পারি?
না। ডিফল্ট হিসেবে, একাধিক রুট দেখানো হয় এবং দ্রুততম রুটকে অগ্রাধিকার দেওয়া হয়। আপনার অনুরোধে "হাইওয়ে ও টোল এড়িয়ে চলো"-এর মতো পছন্দ যোগ করে আপনি ডিফল্ট রুটকে প্রভাবিত করতে পারবেন। ওয়েপয়েন্ট যোগ করলে রুটের উপরও প্রভাব পড়ে।
আমি কি অ্যাপ ব্যবহারকারীকে ডিফল্ট গন্তব্য লোকেশনের চেয়ে আলাদা কোনও লেবেল দেখাতে পারি গন্তব্য লোকেশন?

হ্যাঁ। Android-এ, গন্তব্য এবং অক্ষাংশ/দ্রাঘিমাংশের জন্য কাস্টম শিরোনাম সহ একটি Marker তৈরি করুন। Navigation SDK, NavigationMap-এ কাস্টম শীর্ষক ও কোঅর্ডিনেট দেখায়।

iOS-এ, আপনি গন্তব্যের জন্য একটি GMSMarker তৈরি এবং প্রদর্শন করেন।

আমি কি আগে থেকে নির্দিষ্ট করা রুট থেকে সরে যাওয়া ট্র্যাক করতে নেভিগেশন SDK ব্যবহার করতে পারি?

হ্যাঁ। Android-এ, Navigator.setRouteChangedListener ব্যবহার করে কোনও রুট পরিবর্তন করা হলে বা নতুন রুট সাজেস্ট করা হলে বিজ্ঞপ্তি পান:

  1. Navigator.setRouteChangedListener পদ্ধতি ব্যবহার করে রুট বরাবর ডিভাইসের পজিশন চেক করে এমন লিসেনার রেজিস্টার করুন।
  2. কলব্যাক ইভেন্ট হ্যান্ডলারে কোড যোগ করুন, onRouteChanged:
    • আপডেট করা আনুমানিক সময় ও দূরত্ব সংক্রান্ত তথ্য সহ অ্যাপ ব্যবহারকারীকে মেসেজ পাঠান।
    • ডিভাইসের লোকেশন ট্র্যাক করা।
    • [ঐচ্ছিক] ড্রাইভার নির্ধারিত রুটে না থাকলে, আপনার অ্যাপের জন্য প্রয়োজনীয় অন্যান্য কার্যকারিতা যোগ করুন।

iOS-এ, কোনও রুট পরিবর্তন করা হলে বা নতুন রুট সাজেস্ট করা হলে বিজ্ঞপ্তি পেতে, GMSNavigator এবং এর লিসনার ব্যবহার করুন:

  1. ম্যাপের ভিউ কন্ট্রোলারে, GMSNavigatorListener প্রোটোকল ও GMSRoadSnappedLocationProviderListener প্রোটোকল প্রয়োগ করুন।
  2. প্রয়োগ করুন GMSNavigatorListener.navigatorDidChangeRoute।
  3. GMSNavigator-এর routeLegs ও currentRouteLeg প্রপার্টি ব্যবহার করে নতুন রুট অ্যাক্সেস করুন।
ড্রাইভার কি রুট সম্পূর্ণ না করেই নেভিগেশন থেকে বেরিয়ে আসতে পারবেন?

হ্যাঁ। Android-এ, নেভিগেশন বন্ধ করতে Navigator.stopGuidance() মেথডকে কল করুন।

iOS-এ, GMSNavigator.clearDestinations নম্বরে কল করুন।

Navigation SDK কি ট্রাক এবং বড় গাড়ির জন্য রাউটিং এবং নেভিগেশন সমর্থন করে?

হ্যাঁ। বড় গাড়ির জন্য রুট (LVR) ফিচারের মাধ্যমে, আপনি Routes API বা Route Optimization API-এর মাধ্যমে তৈরি করা ট্রাক-নির্দিষ্ট রুট টোকেন Navigation SDK-তে পাঠাতে পারবেন। SDK, রুট কলআউট (উচ্চতা, ওজন, বিপজ্জনক পদার্থ ও ট্রাক সংক্রান্ত বিধিনিষেধ) সহ ধাপে ধাপে নেভিগেশন প্রদান করে এবং ডাইনামিক রিরুটিংয়ের সময় গাড়ির ফিজিক্যাল প্রোফাইল বজায় রাখে। আরও বিবরণের জন্য, বড় গাড়ির রুট নেভিগেট করা দেখুন।

সিমুলেটার

Does the simulator support route changes?

হ্যাঁ। Android-এ, simulateLocationsAlongNewRoute-এ কল করে রুট পরিবর্তন সহ একটি জার্নি সিমুলেট করুন। simulateLocationsAlongExistingRoute পদ্ধতি আগে থেকে থাকা রুটে করা পরিবর্তন উপেক্ষা করে।

iOS-এ, রুট পরিবর্তন সহ কোনও জার্নি সিমুলেট করতে GMSLocationSimulator.simulateAlongNewRouteToDestinations ব্যবহার করুন। আপনি যদি কোনও রুট পরিবর্তন অনুমান না করেন, তাহলে GMSLocationSimulator.simulateLocationsAlongExistingRoute বা GMSLocationSimulator.simulateAlongNewRouteToDestinations ব্যবহার করতে পারেন।

ওয়ার্কফ্লো

নেভিগেশন ফ্র্যাগমেন্ট আছে এমন অ্যাক্টিভিটি বন্ধ করার পরে আমি কীভাবে বিজ্ঞপ্তি বাতিল করব?

অ্যাক্টিভিটি বন্ধ হয়ে গেলেও নেভিগেশন চলাকালীন নেভিগেশন বিজ্ঞপ্তি দেখা যায়। গাড়ি গন্তব্যে পৌঁছালে, নেভিগেশন বন্ধ হয়ে যায় এবং বিজ্ঞপ্তিটি আর দেখা যায় না।

বিজ্ঞপ্তিতে ক্লিক করা ম্যানেজ করতে, Navigator.startGuidance(intent resumeIntent) ব্যবহার করুন। অ্যাপ ব্যবহারকারী বিজ্ঞপ্তিতে ক্লিক করলে resume intent ফায়ার হয়। সাধারণত, Navigator.startguidance(getIntent())-কে মূল অ্যাক্টিভিটি থেকে কল করা হয় যা অ্যাপ ব্যবহারকারী বিজ্ঞপ্তিতে ক্লিক করলে অ্যাক্টিভিটিকে রিকল করে।

মবিলিটি পরিষেবা

মোবিলিটি পরিষেবা গ্রাহকদের জন্য Navigation SDK ব্যবহার করা কীভাবে আলাদা?

Google Maps Platform Mobility Services, পরিবহন ও লজিস্টিক ব্যবসার এন্টারপ্রাইজ সংক্রান্ত প্রয়োজন মেটাতে সাহায্য করার জন্য API ও SDK-এর একটি সংগ্রহ অফার করে। মোবিলিটি পরিষেবা গ্রাহকদের জন্য, নেভিগেশন SDK সাধারণত রুট অপ্টিমাইজেশন, ডিসপ্যাচ, টাস্ক ট্র্যাকিং, ফ্লিট অ্যানালিটিক্স এবং আরও অনেক কিছুর জন্য সম্পর্কিত পরিষেবার সাথে একসাথে ব্যবহার করা হয়। মোবিলিটি পরিষেবা গ্রাহকদের জন্য নেভিগেশন SDK-এর বিলিং আলাদাভাবে করা হয়। আরও তথ্যের জন্য, Mobility Services ডকুমেন্টেশন দেখুন।

শুধু বেছে নেওয়া গ্রাহকদের জন্যই মোবিলিটি প্রোডাক্ট উপলভ্য। আরও তথ্যের জন্য আপনার সেলস প্রতিনিধির সাথে যোগাযোগ করুন।

আমি যে মোবিলিটি পরিষেবার গ্রাহক তা কীভাবে বুঝব?
আপনি যদি নিশ্চিত না হন যে আপনি মোবিলিটি পরিষেবা গ্রাহক হিসেবে নেভিগেশন SDK প্রয়োগ করছেন কিনা, তাহলে আপনার কোডে ReportBillableEvent কল খুঁজুন। শুধুমাত্র Mobility Services গ্রাহকদের ReportBillableEvent পদ্ধতিতে কল করা উচিত।

মোবিলিটি পরিষেবা গ্রাহকদের Navigation SDK-এর জন্য কীভাবে বিল করা হয়?
মোবিলিটি পরিষেবা গ্রাহকদের ক্ষেত্রে, নেভিগেশন SDK-এর জন্য বিলিং ও মূল্য নির্ধারণ Google Maps Platform-এর সাথে আপনার পরিষেবা চুক্তির উপর নির্ভর করে। আপনার মোবিলিটি পরিষেবা সঠিকভাবে বিল করা হচ্ছে কিনা তা যাচাই করার তথ্য পেতে, বিলিং যাচাইকরণ দেখুন। মোবিলিটি পরিষেবা বিলিং সম্পর্কে অতিরিক্ত তথ্য পেতে, আপনার বিক্রয় প্রতিনিধির সাথে যোগাযোগ করুন।

কোন কোন Navigation SDK API শুধুমাত্র মোবিলিটি পরিষেবা গ্রাহকদের ব্যবহার করা উচিত?

Navigation SDK-তে এমন অনেক API আছে যা শুধুমাত্র মোবিলিটি পরিষেবা গ্রাহকদের ব্যবহারের জন্য তৈরি করা হয়েছে, যাদের Google প্রতি ট্রানজ্যাকশন ভিত্তিতে বিল করে। আপনি Mobility Services-এর গ্রাহক না হলে, নিম্নলিখিত পদ্ধতিগুলি কাজ করবে না:

আমি যদি মোবিলিটি পরিষেবা গ্রাহক হই, তাহলে কি আমি নেভিগেশন SDK-এর মোবিলিটি পরিষেবা নয় এমন ইমপ্লিমেন্টেশনও ব্যবহার করতে পারব?

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

Navigation SDK-এর নন-মোবিলিটি সার্ভিস ইমপ্লিমেন্টেশন ব্যবহার করা সম্পর্কে আরও তথ্য পেতে, যার মধ্যে একটি ইমপ্লিমেন্টেশন ধরন থেকে অন্যটিতে অ্যাপ মাইগ্রেট করা অন্তর্ভুক্ত, আপনার Google অ্যাকাউন্ট প্রতিনিধির সাথে যোগাযোগ করুন।

মনে রাখবেন: আপনি যদি মবিলিটি পরিষেবা গ্রাহক না হন এবং এপিআই ও SDK-এর মবিলিটি পরিষেবা সংগ্রহ সম্পর্কে আরও জানতে আগ্রহী হন, তাহলে Google Maps Platform সেলস টিমের সাথে যোগাযোগ করুন।