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

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

সমস্যা

নেটওয়ার্ক

ডেটা

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

রাউটিং

সিমুলেটার

ওয়ার্কফ্লো

পরিবহন পরিষেবা

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

আপনার অ্যাপে Navigation 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 সিমুলেটর" বিল্ডের জন্য Excluded Architectures-এ arm64 যোগ করুন।

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

GMSMapView লোড হয় না।

GMSMapView লোড না হলে:

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

নেটওয়ার্ক

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

ডেটা

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

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

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

রুট শুরু করার সময় কি এক এক করে রুট সংক্রান্ত নির্দেশিকা উপলভ্য?
হ্যাঁ। Navigation 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. চূড়ান্ত গন্তব্যের ETA রেন্ডার করুন।

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

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

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

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

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

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

রাউটিং

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

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

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

আমি কি Navigation SDK ব্যবহার করে নির্দিষ্ট করা কোনও পথ থেকে বিচ্যুতি ট্র্যাক করতে পারি?

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

  1. Navigator.setRouteChangedListener পদ্ধতি ব্যবহার করে রুট বরাবর ডিভাইসের পজিশন চেক করে এমন লিসেনার রেজিস্টার করুন।
  2. কলব্যাক ইভেন্ট হ্যান্ডলারে কোড যোগ করুন, onRouteChanged:
    • আপডেট করা ETA এবং দূরত্ব সংক্রান্ত তথ্য সহ অ্যাপ ব্যবহারকারীকে মেসেজ পাঠান।
    • ডিভাইসের লোকেশন ট্র্যাক করা।
    • [optional] Add other functionality required by your app to handle when the driver is off the prescribed route.

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 রুট কলআউট (উচ্চতা, ওজন, বিপজ্জনক পদার্থ এবং ট্রাক সংক্রান্ত বিধিনিষেধ) সহ ধাপে ধাপে নেভিগেশন প্রদান করে এবং ডাইনামিক রি-রাউটিংয়ের সময় গাড়ির ফিজিক্যাল প্রোফাইল বজায় রাখে। বিস্তারিত জানতে, বড় গাড়ির রুট নেভিগেট করা দেখুন।

সিমুলেটার

সিমুলেটর কি রুট পরিবর্তন করতে দেয়?

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

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

ওয়ার্কফ্লো

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

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

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

পরিবহন পরিষেবা

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

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

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

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

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

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

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

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

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

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

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