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

পণ্যের বিবরণ

সমস্যা

নেটওয়ার্ক

ডেটা

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

রাউটিং

সিমুলেটর

ওয়ার্কফ্লো

গতিশীলতা পরিষেবা

পণ্যের বিবরণ

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

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

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

হ্যাঁ। যখন কোনো রাউট তৈরি বা পরিবর্তন করা হয়, তখন RouteChangeListener পলিলাইন সরবরাহ করে।

না, নেভিগেশন এসডিকে ব্যবহারের জন্য ডিভাইসে গুগল ম্যাপস মোবাইল ইনস্টল করার প্রয়োজন নেই।
না, নেভিগেশন এসডিকে বর্তমানে এই কার্যকারিতাটি প্রদান করে না।
হ্যাঁ। ট্র্যাফিকের দিকনির্দেশনাটি ডিফল্টরূপে উপলব্ধ এবং প্রদর্শিত হয়।

সমস্যা

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

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

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

GMSMapView লোড হচ্ছে না।

যদি GMSMapView লোড না হয়:

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

নেটওয়ার্ক

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

ডেটা

যাত্রা শুরু করার আগে আমি কি এর সমস্ত স্টপ/গন্তব্যগুলো জেনে নিতে পারি?

হ্যাঁ। অ্যান্ড্রয়েডে, কোনো রুটের দিকনির্দেশনা পেতে Navigator.getRouteSegments() কল করুন।

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

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

অ্যান্ড্রয়েডে, অ্যাপ ব্যবহারকারীদের ETA তথ্য জানাতে নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

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

iOS-এ, অ্যাপ ব্যবহারকারীদের ETA তথ্য জানাতে এই ধাপগুলো অনুসরণ করুন:

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

হ্যাঁ। অ্যান্ড্রয়েডে RoadSnappedLocationProvider ডিফল্টরূপে ব্যাকগ্রাউন্ডে চলে।

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

নেভিগেশন এসডিকে কি জিওফেন্সিং সমর্থন করে?

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

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

  1. কলব্যাকগুলির পৌনঃপুনিকতা নির্ধারণ করতে থ্রেশহোল্ড সেট করুন।
  2. গন্তব্যস্থলে পৌঁছানোর জন্য অবশিষ্ট দূরত্ব যাচাই করুন।

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

iOS-এ, নোটিফিকেশনগুলোর মধ্যকার দূরত্ব পরিচালনা করতে GMSNavigatorListener.didUpdateRemainingDistance লিসেনারটি প্রয়োগ করুন।

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

হ্যাঁ। অ্যান্ড্রয়েডে, নোটিফিকেশন নিয়ন্ত্রণ করতে Navigator.setHeadsUpNotificationEnabled ব্যবহার করুন। এই মেথডটির একটি বুলিয়ান আর্গুমেন্ট আছে। FALSE নোটিফিকেশন নিষ্ক্রিয় করে; TRUE নোটিফিকেশন সক্রিয় করে।

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

অন্যান্য অবস্থান বিজ্ঞপ্তির জন্য ব্যাকগ্রাউন্ড প্রসেসিং নিষ্ক্রিয় করতে, GMSNavigator.sendsBackgroundNotifications(NO) কল করুন।

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

আমি কি সেরা পথের বিকল্পটিকে রঙ দিয়ে চিহ্নিত করতে পারি?
না, এই মুহূর্তে কোনো নির্দিষ্ট রুট অপশনকে রঙ দিয়ে চিহ্নিত করার সুবিধাটি সমর্থিত নয়।
নেভিগেশন এসডিকে কি চূড়ান্ত গন্তব্যের আনুমানিক পৌঁছানোর সময় (ETA) দেখাতে পারে?

হ্যাঁ। অ্যান্ড্রয়েডে, নিম্নলিখিত পদ্ধতিগুলো ব্যবহার করুন:

  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 আপডেটগুলি লুকাতে পারি?

আপনি নিম্নলিখিত পদ্ধতিগুলির মাধ্যমে ইটিএ কার্ডগুলি নিষ্ক্রিয় করতে পারেন:

  • অ্যান্ড্রয়েডে, navigationView.setEtaCardEnabled(false) ব্যবহার করুন।
  • iOS-এ, GMSMapView.settings.navigationFooterEnabled=NO ব্যবহার করুন।
হেডার এবং ফুটার কার্ডের জন্য কী কী UI কাস্টমাইজেশন উপলব্ধ আছে?

অ্যান্ড্রয়েডে, ব্যাকগ্রাউন্ড কালার স্টাইলিং সেট করার জন্য StylingOptions ব্যবহার করা হয়। হেডার এবং ফুটার লুকানো বা দেখানোর জন্য, NavigationFragment এর setHeaderEnabled এবং setFooterEnabled মেম্বার ফাংশনগুলো ব্যবহার করুন।

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

রাউটিং

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

হ্যাঁ। অ্যান্ড্রয়েডে, গন্তব্যের জন্য একটি কাস্টম শিরোনাম এবং অক্ষাংশ/দ্রাঘিমাংশ দিয়ে একটি Marker তৈরি করুন। নেভিগেশন এসডিকে NavigationMap কাস্টম শিরোনাম এবং স্থানাঙ্কগুলি প্রদর্শন করে।

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

আমি কি একটি নির্ধারিত পথ থেকে বিচ্যুতি ট্র্যাক করতে নেভিগেশন এসডিকে ব্যবহার করতে পারি?

হ্যাঁ। অ্যান্ড্রয়েডে, যখন কোনো রুট পরিবর্তিত হয় বা নতুন কোনো রুটের সুপারিশ করা হয়, তখন নোটিফিকেশন পাওয়ার জন্য Navigator.setRouteChangedListener ব্যবহার করুন:

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

iOS-এ, কোনো রুট পরিবর্তিত হলে বা নতুন কোনো রুটের পরামর্শ দেওয়া হলে নোটিফিকেশন পেতে GMSNavigator এবং এর লিসেনারগুলো ব্যবহার করুন:

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

হ্যাঁ। অ্যান্ড্রয়েডে নেভিগেশন বন্ধ করতে Navigator.stopGuidance() মেথডটি কল করুন।

iOS-এ, GMSNavigator.clearDestinations কল করুন।

সিমুলেটর

সিমুলেটরটি কি রুট পরিবর্তন সমর্থন করে?

হ্যাঁ। অ্যান্ড্রয়েডে, রুট পরিবর্তনসহ একটি যাত্রা সিমুলেট করতে simulateLocationsAlongNewRoute মেথডটি কল করুন। simulateLocationsAlongExistingRoute মেথডটি বিদ্যমান রুটের পরিবর্তনগুলোকে উপেক্ষা করে।

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

ওয়ার্কফ্লো

যে অ্যাক্টিভিটিতে একটি ন্যাভিগেশন ফ্র্যাগমেন্ট রয়েছে, সেটি বন্ধ করার পর নোটিফিকেশনটি কীভাবে বাতিল করব?

নেভিগেশন চলাকালীন, অ্যাক্টিভিটিটি বন্ধ থাকলেও নেভিগেশন নোটিফিকেশনটি দৃশ্যমান থাকে। যানবাহনটি গন্তব্যে পৌঁছালে, নেভিগেশন বন্ধ হয়ে যায় এবং নোটিফিকেশনটি অদৃশ্য হয়ে যায়।

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

গতিশীলতা পরিষেবা

মোবিলিটি সার্ভিসেস গ্রাহকদের জন্য নেভিগেশন এসডিকে ব্যবহার করার পদ্ধতিটি কীভাবে ভিন্ন?

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

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

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

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

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

ন্যাভিগেশন এসডিকে-তে এমন বেশ কিছু এপিআই রয়েছে যা শুধুমাত্র মোবিলিটি সার্ভিসেস গ্রাহকদের ব্যবহারের জন্য তৈরি, যাদেরকে গুগল প্রতি-লেনদেন ভিত্তিতে বিল করে থাকে। আপনি যদি মোবিলিটি সার্ভিসেস গ্রাহক না হন, তাহলে নিম্নলিখিত মেথডগুলো ব্যবহার করা যাবে না:

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

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

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

দ্রষ্টব্য: আপনি যদি মোবিলিটি সার্ভিসেস-এর গ্রাহক না হন এবং এর এপিআই ও এসডিকে-গুলোর সংগ্রহ সম্পর্কে আরও জানতে আগ্রহী হন, তাহলে গুগল ম্যাপস প্ল্যাটফর্ম সেলস-এর সাথে যোগাযোগ করুন

,

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

পণ্যের বিবরণ

সমস্যা

নেটওয়ার্ক

ডেটা

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

রাউটিং

সিমুলেটর

ওয়ার্কফ্লো

গতিশীলতা পরিষেবা

পণ্যের বিবরণ

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

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

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

হ্যাঁ। যখন কোনো রাউট তৈরি বা পরিবর্তন করা হয়, তখন RouteChangeListener পলিলাইন সরবরাহ করে।

না, নেভিগেশন এসডিকে ব্যবহারের জন্য ডিভাইসে গুগল ম্যাপস মোবাইল ইনস্টল করার প্রয়োজন নেই।
না, নেভিগেশন এসডিকে বর্তমানে এই কার্যকারিতাটি প্রদান করে না।
হ্যাঁ। ট্র্যাফিকের দিকনির্দেশনাটি ডিফল্টরূপে উপলব্ধ এবং প্রদর্শিত হয়।

সমস্যা

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

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

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

GMSMapView লোড হচ্ছে না।

যদি GMSMapView লোড না হয়:

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

নেটওয়ার্ক

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

ডেটা

যাত্রা শুরু করার আগে আমি কি এর সমস্ত স্টপ/গন্তব্যগুলো জেনে নিতে পারি?

হ্যাঁ। অ্যান্ড্রয়েডে, কোনো রুটের দিকনির্দেশনা পেতে Navigator.getRouteSegments() কল করুন।

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

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

অ্যান্ড্রয়েডে, অ্যাপ ব্যবহারকারীদের ETA তথ্য জানাতে নিম্নলিখিত ধাপগুলো অনুসরণ করুন:

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

iOS-এ, অ্যাপ ব্যবহারকারীদের ETA তথ্য জানাতে এই ধাপগুলো অনুসরণ করুন:

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

হ্যাঁ। অ্যান্ড্রয়েডে RoadSnappedLocationProvider ডিফল্টরূপে ব্যাকগ্রাউন্ডে চলে।

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

নেভিগেশন এসডিকে কি জিওফেন্সিং সমর্থন করে?

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

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

  1. কলব্যাকগুলির পৌনঃপুনিকতা নির্ধারণ করতে থ্রেশহোল্ড সেট করুন।
  2. গন্তব্যস্থলে পৌঁছানোর জন্য অবশিষ্ট দূরত্ব যাচাই করুন।

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

iOS-এ, নোটিফিকেশনগুলোর মধ্যকার দূরত্ব পরিচালনা করতে GMSNavigatorListener.didUpdateRemainingDistance লিসেনারটি প্রয়োগ করুন।

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

হ্যাঁ। অ্যান্ড্রয়েডে, নোটিফিকেশন নিয়ন্ত্রণ করতে Navigator.setHeadsUpNotificationEnabled ব্যবহার করুন। এই মেথডটির একটি বুলিয়ান আর্গুমেন্ট আছে। FALSE নোটিফিকেশন নিষ্ক্রিয় করে; TRUE নোটিফিকেশন সক্রিয় করে।

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

অন্যান্য অবস্থান বিজ্ঞপ্তির জন্য ব্যাকগ্রাউন্ড প্রসেসিং নিষ্ক্রিয় করতে, GMSNavigator.sendsBackgroundNotifications(NO) কল করুন।

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

আমি কি সেরা পথের বিকল্পটিকে রঙ দিয়ে চিহ্নিত করতে পারি?
না, এই মুহূর্তে কোনো নির্দিষ্ট রুট অপশনকে রঙ দিয়ে চিহ্নিত করার সুবিধাটি সমর্থিত নয়।
নেভিগেশন এসডিকে কি চূড়ান্ত গন্তব্যের আনুমানিক পৌঁছানোর সময় (ETA) দেখাতে পারে?

হ্যাঁ। অ্যান্ড্রয়েডে, নিম্নলিখিত পদ্ধতিগুলো ব্যবহার করুন:

  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 আপডেটগুলি লুকাতে পারি?

আপনি নিম্নলিখিত পদ্ধতিগুলির মাধ্যমে ইটিএ কার্ডগুলি নিষ্ক্রিয় করতে পারেন:

  • অ্যান্ড্রয়েডে, navigationView.setEtaCardEnabled(false) ব্যবহার করুন।
  • iOS-এ, GMSMapView.settings.navigationFooterEnabled=NO ব্যবহার করুন।
হেডার এবং ফুটার কার্ডের জন্য কী কী UI কাস্টমাইজেশন উপলব্ধ আছে?

অ্যান্ড্রয়েডে, ব্যাকগ্রাউন্ড কালার স্টাইলিং সেট করার জন্য StylingOptions ব্যবহার করা হয়। হেডার এবং ফুটার লুকানো বা দেখানোর জন্য, NavigationFragment এর setHeaderEnabled এবং setFooterEnabled মেম্বার ফাংশনগুলো ব্যবহার করুন।

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

রাউটিং

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

হ্যাঁ। অ্যান্ড্রয়েডে, গন্তব্যের জন্য একটি কাস্টম শিরোনাম এবং অক্ষাংশ/দ্রাঘিমাংশ দিয়ে একটি Marker তৈরি করুন। নেভিগেশন এসডিকে NavigationMap কাস্টম শিরোনাম এবং স্থানাঙ্কগুলি প্রদর্শন করে।

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

আমি কি একটি নির্ধারিত পথ থেকে বিচ্যুতি ট্র্যাক করতে নেভিগেশন এসডিকে ব্যবহার করতে পারি?

হ্যাঁ। অ্যান্ড্রয়েডে, যখন কোনো রুট পরিবর্তিত হয় বা নতুন কোনো রুটের সুপারিশ করা হয়, তখন নোটিফিকেশন পাওয়ার জন্য Navigator.setRouteChangedListener ব্যবহার করুন:

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

iOS-এ, কোনো রুট পরিবর্তিত হলে বা নতুন কোনো রুটের পরামর্শ দেওয়া হলে নোটিফিকেশন পেতে GMSNavigator এবং এর লিসেনারগুলো ব্যবহার করুন:

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

হ্যাঁ। অ্যান্ড্রয়েডে নেভিগেশন বন্ধ করতে Navigator.stopGuidance() মেথডটি কল করুন।

iOS-এ, GMSNavigator.clearDestinations কল করুন।

সিমুলেটর

সিমুলেটরটি কি রুট পরিবর্তন সমর্থন করে?

হ্যাঁ। অ্যান্ড্রয়েডে, রুট পরিবর্তনসহ একটি যাত্রা সিমুলেট করতে simulateLocationsAlongNewRoute মেথডটি কল করুন। simulateLocationsAlongExistingRoute মেথডটি বিদ্যমান রুটের পরিবর্তনগুলোকে উপেক্ষা করে।

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

ওয়ার্কফ্লো

যে অ্যাক্টিভিটিতে একটি ন্যাভিগেশন ফ্র্যাগমেন্ট রয়েছে, সেটি বন্ধ করার পর নোটিফিকেশনটি কীভাবে বাতিল করব?

নেভিগেশন চলাকালীন, অ্যাক্টিভিটিটি বন্ধ থাকলেও নেভিগেশন নোটিফিকেশনটি দৃশ্যমান থাকে। যানবাহনটি গন্তব্যে পৌঁছালে, নেভিগেশন বন্ধ হয়ে যায় এবং নোটিফিকেশনটি অদৃশ্য হয়ে যায়।

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

গতিশীলতা পরিষেবা

মোবিলিটি সার্ভিসেস গ্রাহকদের জন্য নেভিগেশন এসডিকে ব্যবহার করার পদ্ধতিটি কীভাবে ভিন্ন?

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

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

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

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

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

ন্যাভিগেশন এসডিকে-তে এমন বেশ কিছু এপিআই রয়েছে যা শুধুমাত্র মোবিলিটি সার্ভিসেস গ্রাহকদের ব্যবহারের জন্য তৈরি, যাদেরকে গুগল প্রতি-লেনদেন ভিত্তিতে বিল করে থাকে। আপনি যদি মোবিলিটি সার্ভিসেস গ্রাহক না হন, তাহলে নিম্নলিখিত মেথডগুলো ব্যবহার করা যাবে না:

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

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

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

দ্রষ্টব্য: আপনি যদি মোবিলিটি সার্ভিসেস-এর গ্রাহক না হন এবং এর এপিআই ও এসডিকে-গুলোর সংগ্রহ সম্পর্কে আরও জানতে আগ্রহী হন, তাহলে গুগল ম্যাপস প্ল্যাটফর্ম সেলস-এর সাথে যোগাযোগ করুন

,

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

পণ্যের বিবরণ

সমস্যা

নেটওয়ার্ক

ডেটা

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

Routing

Simulator

ওয়ার্কফ্লো

Mobility Services

পণ্যের বিবরণ

Your app must implement a dialog with the Navigation SDK Terms of Service notice that each driver must accept. This dialog gives the driver the opportunity to agree with the Terms of Service. A text file of the terms is provided with the Navigation SDK.
In Android, use the NavigationApi.showTermsAndConditionsDialog method to display the dialog containing the terms.
In iOS, call GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName .
Any languages supported by Google Maps Mobile are automatically available for the Navigation SDK. A device has a default system language and an app cannot change that setting; however, the app has access to over 70 languages.

Yes. In Android, once started, the LocationListener continues to run in the background. Your app continues road snapping the position and maintains the bearing.

In iOS, to continue receiving location updates of position and bearing in the background, implement road snapping and set allowsBackgroundLocationUpdates to YES .

Yes. When a route is created or changed, the RouteChangeListener provides polylines.

No, the Navigation SDK does not require Google Maps Mobile to be installed on the device.
No, the Navigation SDK does not provide this functionality at this time.
Yes. The traffic direction is available and displayed by default.

সমস্যা

In Xcode 12, apps don't build correctly for the simulator. How can I fix this?

To fix this issue, open your Xcode project Build Settings, and add arm64 to the Excluded Architectures for "iOS Simulator" builds only.

For more information, see the following StackOverflow thread .

GMSMapView does not load.

If the GMSMapView does not load:

  • Check that NavSDK is enabled in Cloud Console.
  • If the Nav SDK is installed, but your project does not use Nav SDK APIs, remove it from your binary.

নেটওয়ার্ক

How does the Navigation SDK handle poor connectivity?
The Navigation SDK pre-caches the route for each journey. The pre-cached information includes routing information for 15-20 minutes, and route alternatives in case the driver deviates from the route. The Navigation SDK approximates position using the device GPS and sensors.
Is an offline mode available?
No, the Navigation SDK does not offer an offline mode at this time; however, the SDK does provide pre-cached information for a journey.

ডেটা

Can I retrieve all of the stops/destinations in a journey before starting the route?

Yes. In Android, to retrieve the directions for a route, call Navigator.getRouteSegments() .

In iOS, call GMSNavigator.routeLegs(read) .

Is turn-by-turn route guidance available at the start of a route?
Yes. The Navigation SDK provides a list of route segments. In addition, the driver can swipe through the directions card in the header to see each maneuver.
How is ETA communicated to the app users?

In Android, use the following steps to give ETA information to app users:

  1. Retrieve the time and distance for all waypoints using Navigator.getTimeAndDistanceList() .
  2. Forward this information to the client application as you do for the driver ETA.

In iOS, use these steps to give ETA information to app users:

  1. Retrieve the legs in the journey using Navigator.getRouteSegments() .
  2. Call GMSNavigator.timeToNextDestination for each journey leg.
  3. Forward the time information to the client application as you do for the driver ETA.
Can the RoadSnappedLocationProvider be used to obtain the driver's current snapped location if navigation is not in the foreground?

Yes. In Android, the RoadSnappedLocationProvider runs in the background by default.

In iOS, to keep navigation running in the background, implement the listener for GMSRoadSnappedLocationProviderListener , and set the property allowsBackgroundLocationUpdates to TRUE .

Does the Navigation SDK support geofencing?

No. In the context of navigation, remainingTimeOrdistanceChangeListener has an advantage over a geofence. The geofence might not account for road geometry, and might not be centered on the exact point to which the driver is navigating.

You can approximate this functionality using remainingTimeOrdistanceChangeListener .

  1. Set the threshold to determine the frequency of the callbacks.
  2. Check the remaining distance to the destination.

For example, if you set the threshold to 100m, you receive a callback when the distance to the destination changes by 100m. As the distance decreases, you can update this threshold to a smaller value and receive more frequent callbacks. Then, inspect the remaining distance to determine if you are close enough to the pickup/drop-off location.

In iOS, implement the listener GMSNavigatorListener.didUpdateRemainingDistance to manage the distance between notifications.

Can I disable notifications when the Navigation app is in the background?

Yes. In Android, use Navigator.setHeadsUpNotificationEnabled to control notifications. This method has a boolean argument. FALSE disables notifications; TRUE enables notifications.

In iOS, disable background notification for road-snapped locations by setting GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates to NO.

To disable background processing for other location notifications, call GMSNavigator.sendsBackgroundNotifications(NO) .

UI Customization

Can I color code the best route option?
No. Color coding a specific route option is not supported at this time.
Can the Navigation SDK show the ETA for the final destination?

Yes. In Android, use the following methods:

  1. Retrieve the time and distance for all waypoints using Navigator.getTimeAndDistanceList() .
  2. Hide the ETA of the current waypoint using NavigationFragment.setEtaCardEnabled(false) .
  3. Render the final destination ETA.

In iOS, use the following:

  1. Call GMSNavigator.routeLegs(read) .
  2. With the last leg, call GMSNavigator.timeToNextDestination .
  3. Hide the ETA of the current waypoint using MSMapView.settings.navigationFooterEnabled=NO to FALSE.
  4. Render the final destination ETA.
How can I hide ETA updates?

You can disable ETA cards with the following methods:

  • In Android, use navigationView.setEtaCardEnabled(false) .
  • In iOS, use GMSMapView.settings.navigationFooterEnabled=NO .
Which UI customizations are available for the header and footer cards?

In Android, you use StylingOptions to set the background color styling. To hide or show the header and footer, use the setHeaderEnabled and setFooterEnabled member functions of NavigationFragment .

In iOS, use GMSMapView.settings.navigationHeaderPrimaryBackgroundColor to set the background color styling. To hide or show the header and footer use navigationFooterEnabled and navigationHeaderEnabled properties of GMSUISettings .

Routing

Can I provide a specific route to a driver or remove alternative routes?
No. By default, multiple routes are provided and the fastest route has priority. You can affect the default route by adding preferences, such as "avoid highways and tolls," to your request. Adding waypoints also affects the route.
Can I show the app user a different label for the destination than the default destination location?

Yes. In Android, create a Marker with a custom title for the destination and the latitude/longitude. The Navigation SDK displays the custom title and the coordinates on the NavigationMap .

In iOS, you create and display a GMSMarker for the destination.

Can I use the Navigation SDK to track deviations from a defined path?

Yes. In Android, use Navigator.setRouteChangedListener to receive notifications when a route changes or a new route is recommended:

  1. Register a listener that checks the device position along the route using the Navigator.setRouteChangedListener method.
  2. Add code to the callback event handler, onRouteChanged :
    • Send a message to the app user with updated ETA and distance information.
    • Track the device's location.
    • [optional] Add other functionality required by your app to handle when the driver is off the prescribed route.

In iOS, use the GMSNavigator and its listeners to receive notifications when a route changes or a new route is recommended:

  1. On the map's view controller, implement the GMSNavigatorListener protocol and the GMSRoadSnappedLocationProviderListener protocol.
  2. Implement GMSNavigatorListener.navigatorDidChangeRoute .
  3. Access the new route using routeLegs and currentRouteLeg properties of the GMSNavigator .
Can the driver exit navigation without completing the route?

Yes. In Android, call the Navigator.stopGuidance() method to stop navigation.

In iOS, call GMSNavigator.clearDestinations .

Simulator

Does the simulator support route changes?

Yes. In Android, call simulateLocationsAlongNewRoute to simulate a journey that includes a route change. The simulateLocationsAlongExistingRoute method ignores changes to the existing route.

In iOS, use GMSLocationSimulator.simulateAlongNewRouteToDestinations to simulate a journey that includes a route change. If you don't anticipate any route changes, you can use GMSLocationSimulator.simulateLocationsAlongExistingRoute or GMSLocationSimulator.simulateAlongNewRouteToDestinations .

ওয়ার্কফ্লো

How do I dismiss the notification after closing an activity that contains a navigation fragment?

The navigation notification remains visible during navigation, when the activity is closed. When the vehicle arrives at the destination, navigation stops, and the notification disappears.

To handle clicks on the notification, use the Navigator.startGuidance(intent resumeIntent) . The resume intent fires when the app user clicks the notification. Typically, the Navigator.startguidance(getIntent()) is called from the main Activity, which recalls the Activity when the app user clicks the notification.

Mobility Services

How is using the Navigation SDK different for Mobility Services customers?

Google Maps Platform Mobility Services offer a collection of APIs and SDKs to help support enterprise needs for transportation and logistics businesses. For Mobility Services customers, the Navigation SDK is typically used in conjunction with related services for route optimization, dispatch, task tracking, fleet analytics, and more. The Navigation SDK is also billed differently for Mobility Services customers. For more information, see the Mobility Services documentation.

Mobility products are available only to select customers. Contact your sales representative for more information.

How can I tell if I'm a Mobility Services customer?
If you're not sure if you're implementing the Navigation SDK as a Mobility Services customer, look for a ReportBillableEvent call in your code. Only Mobility Services customers should call the ReportBillableEvent method.

How is the Navigation SDK billed for Mobility Services customers?
For Mobility Services customers, billing and pricing for the Navigation SDK depend on the service agreement you have with Google Maps Platform. For information on verifying that your Mobility Services implementation is being billed correctly see Billing validation . For additional information about Mobility Services billing, contact your sales representative.

Which Navigation SDK APIs should only be used by Mobility Services customers?

There are several APIs in the Navigation SDK that are only intended for use by Mobility Services customers, who are billed by Google on a per-transaction basis. If you are not a Mobility Services customer, the following methods are no-ops:

If I'm a Mobility Services customer, can I also use a non-Mobility Services implementation of the Navigation SDK?

Yes, Mobility Services customers can use both Mobility Services and non-Mobility Services implementations of the Navigation SDK. However, you can only use one implementation type in an app at one time. You also need to create a new Google Cloud project, billing account, and API key, separate from those that you use with your Mobility Services implementation. For more information, see the Navigation SDK setup overview .

For more information about using a non-Mobility Services implementation of the Navigation SDK, including migrating an app from one implementation type to the other, contact your Google account representative.

Note: If you are not a Mobility Services customer and are interested in learning more about the Mobility Services collection of APIs and SDKs, contact Google Maps Platform sales .

,

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

পণ্যের বিবরণ

সমস্যা

নেটওয়ার্ক

ডেটা

UI Customization

Routing

Simulator

ওয়ার্কফ্লো

Mobility Services

পণ্যের বিবরণ

Your app must implement a dialog with the Navigation SDK Terms of Service notice that each driver must accept. This dialog gives the driver the opportunity to agree with the Terms of Service. A text file of the terms is provided with the Navigation SDK.
In Android, use the NavigationApi.showTermsAndConditionsDialog method to display the dialog containing the terms.
In iOS, call GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName .
Any languages supported by Google Maps Mobile are automatically available for the Navigation SDK. A device has a default system language and an app cannot change that setting; however, the app has access to over 70 languages.

Yes. In Android, once started, the LocationListener continues to run in the background. Your app continues road snapping the position and maintains the bearing.

In iOS, to continue receiving location updates of position and bearing in the background, implement road snapping and set allowsBackgroundLocationUpdates to YES .

Yes. When a route is created or changed, the RouteChangeListener provides polylines.

No, the Navigation SDK does not require Google Maps Mobile to be installed on the device.
No, the Navigation SDK does not provide this functionality at this time.
Yes. The traffic direction is available and displayed by default.

সমস্যা

In Xcode 12, apps don't build correctly for the simulator. How can I fix this?

To fix this issue, open your Xcode project Build Settings, and add arm64 to the Excluded Architectures for "iOS Simulator" builds only.

For more information, see the following StackOverflow thread .

GMSMapView does not load.

If the GMSMapView does not load:

  • Check that NavSDK is enabled in Cloud Console.
  • If the Nav SDK is installed, but your project does not use Nav SDK APIs, remove it from your binary.

নেটওয়ার্ক

How does the Navigation SDK handle poor connectivity?
The Navigation SDK pre-caches the route for each journey. The pre-cached information includes routing information for 15-20 minutes, and route alternatives in case the driver deviates from the route. The Navigation SDK approximates position using the device GPS and sensors.
Is an offline mode available?
No, the Navigation SDK does not offer an offline mode at this time; however, the SDK does provide pre-cached information for a journey.

ডেটা

Can I retrieve all of the stops/destinations in a journey before starting the route?

Yes. In Android, to retrieve the directions for a route, call Navigator.getRouteSegments() .

In iOS, call GMSNavigator.routeLegs(read) .

Is turn-by-turn route guidance available at the start of a route?
Yes. The Navigation SDK provides a list of route segments. In addition, the driver can swipe through the directions card in the header to see each maneuver.
How is ETA communicated to the app users?

In Android, use the following steps to give ETA information to app users:

  1. Retrieve the time and distance for all waypoints using Navigator.getTimeAndDistanceList() .
  2. Forward this information to the client application as you do for the driver ETA.

In iOS, use these steps to give ETA information to app users:

  1. Retrieve the legs in the journey using Navigator.getRouteSegments() .
  2. Call GMSNavigator.timeToNextDestination for each journey leg.
  3. Forward the time information to the client application as you do for the driver ETA.
Can the RoadSnappedLocationProvider be used to obtain the driver's current snapped location if navigation is not in the foreground?

Yes. In Android, the RoadSnappedLocationProvider runs in the background by default.

In iOS, to keep navigation running in the background, implement the listener for GMSRoadSnappedLocationProviderListener , and set the property allowsBackgroundLocationUpdates to TRUE .

Does the Navigation SDK support geofencing?

No. In the context of navigation, remainingTimeOrdistanceChangeListener has an advantage over a geofence. The geofence might not account for road geometry, and might not be centered on the exact point to which the driver is navigating.

You can approximate this functionality using remainingTimeOrdistanceChangeListener .

  1. Set the threshold to determine the frequency of the callbacks.
  2. Check the remaining distance to the destination.

For example, if you set the threshold to 100m, you receive a callback when the distance to the destination changes by 100m. As the distance decreases, you can update this threshold to a smaller value and receive more frequent callbacks. Then, inspect the remaining distance to determine if you are close enough to the pickup/drop-off location.

In iOS, implement the listener GMSNavigatorListener.didUpdateRemainingDistance to manage the distance between notifications.

Can I disable notifications when the Navigation app is in the background?

Yes. In Android, use Navigator.setHeadsUpNotificationEnabled to control notifications. This method has a boolean argument. FALSE disables notifications; TRUE enables notifications.

In iOS, disable background notification for road-snapped locations by setting GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates to NO.

To disable background processing for other location notifications, call GMSNavigator.sendsBackgroundNotifications(NO) .

UI Customization

Can I color code the best route option?
No. Color coding a specific route option is not supported at this time.
Can the Navigation SDK show the ETA for the final destination?

Yes. In Android, use the following methods:

  1. Retrieve the time and distance for all waypoints using Navigator.getTimeAndDistanceList() .
  2. Hide the ETA of the current waypoint using NavigationFragment.setEtaCardEnabled(false) .
  3. Render the final destination ETA.

In iOS, use the following:

  1. Call GMSNavigator.routeLegs(read) .
  2. With the last leg, call GMSNavigator.timeToNextDestination .
  3. Hide the ETA of the current waypoint using MSMapView.settings.navigationFooterEnabled=NO to FALSE.
  4. Render the final destination ETA.
How can I hide ETA updates?

You can disable ETA cards with the following methods:

  • In Android, use navigationView.setEtaCardEnabled(false) .
  • In iOS, use GMSMapView.settings.navigationFooterEnabled=NO .
Which UI customizations are available for the header and footer cards?

In Android, you use StylingOptions to set the background color styling. To hide or show the header and footer, use the setHeaderEnabled and setFooterEnabled member functions of NavigationFragment .

In iOS, use GMSMapView.settings.navigationHeaderPrimaryBackgroundColor to set the background color styling. To hide or show the header and footer use navigationFooterEnabled and navigationHeaderEnabled properties of GMSUISettings .

Routing

Can I provide a specific route to a driver or remove alternative routes?
No. By default, multiple routes are provided and the fastest route has priority. You can affect the default route by adding preferences, such as "avoid highways and tolls," to your request. Adding waypoints also affects the route.
Can I show the app user a different label for the destination than the default destination location?

Yes. In Android, create a Marker with a custom title for the destination and the latitude/longitude. The Navigation SDK displays the custom title and the coordinates on the NavigationMap .

In iOS, you create and display a GMSMarker for the destination.

Can I use the Navigation SDK to track deviations from a defined path?

Yes. In Android, use Navigator.setRouteChangedListener to receive notifications when a route changes or a new route is recommended:

  1. Register a listener that checks the device position along the route using the Navigator.setRouteChangedListener method.
  2. Add code to the callback event handler, onRouteChanged :
    • Send a message to the app user with updated ETA and distance information.
    • Track the device's location.
    • [optional] Add other functionality required by your app to handle when the driver is off the prescribed route.

In iOS, use the GMSNavigator and its listeners to receive notifications when a route changes or a new route is recommended:

  1. On the map's view controller, implement the GMSNavigatorListener protocol and the GMSRoadSnappedLocationProviderListener protocol.
  2. Implement GMSNavigatorListener.navigatorDidChangeRoute .
  3. Access the new route using routeLegs and currentRouteLeg properties of the GMSNavigator .
Can the driver exit navigation without completing the route?

Yes. In Android, call the Navigator.stopGuidance() method to stop navigation.

In iOS, call GMSNavigator.clearDestinations .

Simulator

Does the simulator support route changes?

Yes. In Android, call simulateLocationsAlongNewRoute to simulate a journey that includes a route change. The simulateLocationsAlongExistingRoute method ignores changes to the existing route.

In iOS, use GMSLocationSimulator.simulateAlongNewRouteToDestinations to simulate a journey that includes a route change. If you don't anticipate any route changes, you can use GMSLocationSimulator.simulateLocationsAlongExistingRoute or GMSLocationSimulator.simulateAlongNewRouteToDestinations .

ওয়ার্কফ্লো

How do I dismiss the notification after closing an activity that contains a navigation fragment?

The navigation notification remains visible during navigation, when the activity is closed. When the vehicle arrives at the destination, navigation stops, and the notification disappears.

To handle clicks on the notification, use the Navigator.startGuidance(intent resumeIntent) . The resume intent fires when the app user clicks the notification. Typically, the Navigator.startguidance(getIntent()) is called from the main Activity, which recalls the Activity when the app user clicks the notification.

Mobility Services

How is using the Navigation SDK different for Mobility Services customers?

Google Maps Platform Mobility Services offer a collection of APIs and SDKs to help support enterprise needs for transportation and logistics businesses. For Mobility Services customers, the Navigation SDK is typically used in conjunction with related services for route optimization, dispatch, task tracking, fleet analytics, and more. The Navigation SDK is also billed differently for Mobility Services customers. For more information, see the Mobility Services documentation.

Mobility products are available only to select customers. Contact your sales representative for more information.

How can I tell if I'm a Mobility Services customer?
If you're not sure if you're implementing the Navigation SDK as a Mobility Services customer, look for a ReportBillableEvent call in your code. Only Mobility Services customers should call the ReportBillableEvent method.

How is the Navigation SDK billed for Mobility Services customers?
For Mobility Services customers, billing and pricing for the Navigation SDK depend on the service agreement you have with Google Maps Platform. For information on verifying that your Mobility Services implementation is being billed correctly see Billing validation . For additional information about Mobility Services billing, contact your sales representative.

Which Navigation SDK APIs should only be used by Mobility Services customers?

There are several APIs in the Navigation SDK that are only intended for use by Mobility Services customers, who are billed by Google on a per-transaction basis. If you are not a Mobility Services customer, the following methods are no-ops:

If I'm a Mobility Services customer, can I also use a non-Mobility Services implementation of the Navigation SDK?

Yes, Mobility Services customers can use both Mobility Services and non-Mobility Services implementations of the Navigation SDK. However, you can only use one implementation type in an app at one time. You also need to create a new Google Cloud project, billing account, and API key, separate from those that you use with your Mobility Services implementation. For more information, see the Navigation SDK setup overview .

For more information about using a non-Mobility Services implementation of the Navigation SDK, including migrating an app from one implementation type to the other, contact your Google account representative.

Note: If you are not a Mobility Services customer and are interested in learning more about the Mobility Services collection of APIs and SDKs, contact Google Maps Platform sales .