अक्सर पूछे जाने वाले सवाल

प्रॉडक्ट विवरण

समस्याएं

नेटवर्क

Data

यूज़र इंटरफ़ेस को पसंद के मुताबिक बनाना

रूटिंग

सिम्युलेटर

वर्कफ़्लो

मोबिलिटी सेवाएं

प्रॉडक्ट विवरण

आपके ऐप्लिकेशन में, Navigation SDK की सेवा की शर्तों से जुड़ा एक डायलॉग लागू होना चाहिए. हर ड्राइवर को इसे स्वीकार करना होगा. इस डायलॉग में, ड्राइवर को सेवा की शर्तों से सहमत होने का विकल्प मिलता है. Navigation SDK के साथ, शर्तों की टेक्स्ट फ़ाइल दी जाती है.
Android में, शर्तों वाला डायलॉग दिखाने के लिए NavigationApi.showTermsAndConditionsDialog तरीके का इस्तेमाल करें.
iOS में, कॉल करें GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName.
Google Maps Mobile में इस्तेमाल की जा सकने वाली सभी भाषाएं, Navigation SDK में अपने-आप उपलब्ध हो जाती हैं. डिवाइस में सिस्टम की डिफ़ॉल्ट भाषा सेट होती है. कोई ऐप्लिकेशन इस सेटिंग को नहीं बदल सकता. हालांकि, ऐप्लिकेशन के पास 70 से ज़्यादा भाषाओं का ऐक्सेस होता है.

हां. 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, खराब कनेक्टिविटी को कैसे मैनेज करता है?
Navigation SDK, हर यात्रा के लिए रूट को पहले से कैश मेमोरी में सेव कर लेता है. पहले से कैश की गई जानकारी में, 15 से 20 मिनट के लिए रास्ते की जानकारी शामिल होती है. इसके अलावा, अगर ड्राइवर रास्ते से भटक जाता है, तो उसके लिए वैकल्पिक रास्ते की जानकारी भी शामिल होती है. Navigation SDK, डिवाइस के जीपीएस और सेंसर का इस्तेमाल करके जगह की जानकारी का अनुमान लगाता है.
क्या ऑफ़लाइन मोड उपलब्ध है?
नहीं, फ़िलहाल Navigation SDK में ऑफ़लाइन मोड की सुविधा उपलब्ध नहीं है. हालांकि, एसडीके में यात्रा के लिए पहले से कैश की गई जानकारी उपलब्ध होती है.

Data

क्या यात्रा शुरू करने से पहले, रास्ते में पड़ने वाले सभी स्टॉप/मंज़िलों की जानकारी देखी जा सकती है?

हां. Android में, किसी रास्ते के निर्देश वापस पाने के लिए, Navigator.getRouteSegments() पर कॉल करें.

iOS में, GMSNavigator.routeLegs(read) को कॉल करो.

क्या किसी रास्ते की शुरुआत में, मोड़-दर-मोड़ दिशा-निर्देश उपलब्ध होते हैं?
हां. Navigation SDK, रास्ते के सेगमेंट की सूची उपलब्ध कराता है. इसके अलावा, ड्राइवर हेडर में मौजूद दिशा-निर्देश वाले कार्ड को स्वाइप करके, हर दिशा-निर्देश देख सकता है.
ऐप्लिकेशन के उपयोगकर्ताओं को पहुंचने का अनुमानित समय (ईटीए) कैसे बताया जाता है?

Android में, ऐप्लिकेशन इस्तेमाल करने वाले लोगों को ईटीए की जानकारी देने के लिए, यह तरीका अपनाएं:

  1. Navigator.getTimeAndDistanceList() का इस्तेमाल करके, सभी वेपॉइंट के लिए समय और दूरी की जानकारी पाएं.
  2. इस जानकारी को क्लाइंट ऐप्लिकेशन पर भेजें. ऐसा ही आपको ड्राइवर के ईटीए के लिए करना होता है.

iOS में, ऐप्लिकेशन के उपयोगकर्ताओं को पहुंचने में लगने वाले समय (ईटीए) की जानकारी देने के लिए, यह तरीका अपनाएं:

  1. Navigator.getRouteSegments() का इस्तेमाल करके, यात्रा के लेग वापस पाएं.
  2. यात्रा के हर चरण के लिए, GMSNavigator.timeToNextDestination को कॉल करें.
  3. समय की जानकारी को क्लाइंट ऐप्लिकेशन पर उसी तरह फ़ॉरवर्ड करें जिस तरह ड्राइवर के पहुंचने का अनुमानित समय फ़ॉरवर्ड किया जाता है.
अगर नेविगेशन फ़ोरग्राउंड में नहीं है, तो क्या RoadSnappedLocationProvider का इस्तेमाल करके ड्राइवर की मौजूदा जगह की जानकारी हासिल की जा सकती है?

हां. Android में, RoadSnappedLocationProvider डिफ़ॉल्ट रूप से बैकग्राउंड में चलता है.

iOS में, नेविगेशन को बैकग्राउंड में चालू रखने के लिए, GMSRoadSnappedLocationProviderListener के लिए लिसनर लागू करें. साथ ही, allowsBackgroundLocationUpdates प्रॉपर्टी को TRUE पर सेट करें.

क्या Navigation SDK, जियोफ़ेंसिंग की सुविधा के साथ काम करता है?

नहीं. नेविगेशन के मामले में, जियोफ़ेंस की तुलना में remainingTimeOrdistanceChangeListener बेहतर है. ऐसा हो सकता है कि जियोफ़ेंस में सड़क की ज्यामिति को ध्यान में न रखा गया हो. साथ ही, यह भी हो सकता है कि जियोफ़ेंस उस सटीक पॉइंट पर न हो जहां ड्राइवर को नेविगेट करना है.

remainingTimeOrdistanceChangeListener का इस्तेमाल करके, इस सुविधा का फ़ायदा पाया जा सकता है.

  1. कॉलबैक की फ़्रीक्वेंसी तय करने के लिए थ्रेशोल्ड सेट करें.
  2. मंज़िल की बची हुई दूरी देखें.

उदाहरण के लिए, अगर आपने थ्रेशोल्ड को 100 मीटर पर सेट किया है, तो मंज़िल की दूरी में 100 मीटर का बदलाव होने पर आपको कॉलबैक मिलेगा. दूरी कम होने पर, इस थ्रेशोल्ड को कम वैल्यू पर अपडेट किया जा सकता है. इससे आपको ज़्यादा बार कॉलबैक मिलेंगे. इसके बाद, पिकअप/ड्रॉप-ऑफ़ की जगह से बची हुई दूरी देखें. इससे आपको पता चलेगा कि आप पिकअप/ड्रॉप-ऑफ़ की जगह के काफ़ी करीब हैं या नहीं.

iOS में, सूचनाओं के बीच की दूरी को मैनेज करने के लिए, लिसनर GMSNavigatorListener.didUpdateRemainingDistance लागू करें.

क्या नेविगेशन ऐप्लिकेशन के बैकग्राउंड में होने पर, सूचनाएं पाने की सुविधा बंद की जा सकती है?

हां. Android में, सूचनाओं को कंट्रोल करने के लिए Navigator.setHeadsUpNotificationEnabled का इस्तेमाल करें. इस तरीके में एक बूलियन आर्ग्युमेंट होता है. FALSE सूचनाएं पाने की सुविधा बंद करता है; TRUE सूचनाएं पाने की सुविधा चालू करता है.

iOS में, सड़क के हिसाब से जगह की जानकारी के लिए बैकग्राउंड में सूचना पाने की सुविधा बंद करें. इसके लिए, GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates को NO पर सेट करें.

जगह की जानकारी से जुड़ी अन्य सूचनाओं के लिए, बैकग्राउंड प्रोसेसिंग की सुविधा बंद करने के लिए, GMSNavigator.sendsBackgroundNotifications(NO) को कॉल करें.

यूज़र इंटरफ़ेस को पसंद के मुताबिक बनाना

क्या सबसे अच्छे रास्ते के विकल्प को रंग के हिसाब से कोड किया जा सकता है?
नहीं. फ़िलहाल, किसी खास रास्ते के विकल्प को कलर कोड करने की सुविधा उपलब्ध नहीं है.
क्या Navigation SDK, आखिरी मंज़िल तक पहुंचने का अनुमानित समय दिखा सकता है?

हां. Android में, इन तरीकों का इस्तेमाल करें:

  1. Navigator.getTimeAndDistanceList() का इस्तेमाल करके, सभी वेपॉइंट के लिए समय और दूरी की जानकारी पाएं.
  2. NavigationFragment.setEtaCardEnabled(false) का इस्तेमाल करके, मौजूदा वेपॉइंट का ईटीए छिपाएं.
  3. फ़ाइनल डेस्टिनेशन पर पहुंचने का अनुमानित समय रेंडर करता है.

iOS में, इनका इस्तेमाल करें:

  1. GMSNavigator.routeLegs(read) पर कॉल करें.
  2. आखिरी लेग के लिए, कॉल GMSNavigator.timeToNextDestination.
  3. MSMapView.settings.navigationFooterEnabled=NO को FALSE पर सेट करके, मौजूदा वेपॉइंट के ईटीए को छिपाएं.
  4. फ़ाइनल डेस्टिनेशन पर पहुंचने का अनुमानित समय रेंडर करता है.
मैं यात्रा की अनुमानित अवधि के अपडेट कैसे छिपाऊं?

ईटीए कार्ड को इन तरीकों से बंद किया जा सकता है:

  • Android में, navigationView.setEtaCardEnabled(false) का इस्तेमाल करें.
  • iOS में, GMSMapView.settings.navigationFooterEnabled=NO का इस्तेमाल करें.
हेडर और फ़ुटर कार्ड के लिए, यूज़र इंटरफ़ेस (यूआई) में कौनसे बदलाव किए जा सकते हैं?

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:
    • ऐप्लिकेशन का इस्तेमाल करने वाले व्यक्ति को अपडेट किए गए ईटीए और दूरी की जानकारी वाला मैसेज भेजें.
    • डिवाइस की जगह की जानकारी ट्रैक करना.
    • [ज़रूरी नहीं] अपने ऐप्लिकेशन में ऐसी अन्य सुविधाएं जोड़ें जिनकी ज़रूरत तब पड़ती है, जब ड्राइवर तय किए गए रास्ते से हट जाता है.

iOS में, GMSNavigator और इसके लिसनर का इस्तेमाल करके, रास्ते में बदलाव होने या नए रास्ते का सुझाव मिलने पर सूचनाएं पाएं:

  1. मैप के व्यू कंट्रोलर पर, GMSNavigatorListener प्रोटोकॉल और GMSRoadSnappedLocationProviderListener प्रोटोकॉल लागू करें.
  2. लागू करें GMSNavigatorListener.navigatorDidChangeRoute.
  3. GMSNavigator की routeLegs और currentRouteLeg प्रॉपर्टी का इस्तेमाल करके, नए रूट को ऐक्सेस करें.
क्या ड्राइवर, रास्ते को पूरा किए बिना नेविगेशन बंद कर सकता है?

हां. Android में, नेविगेशन रोकने के लिए Navigator.stopGuidance() वाले तरीके को कॉल करें.

iOS में, GMSNavigator.clearDestinations को कॉल करो.

सिम्युलेटर

क्या सिम्युलेटर में रास्ते बदलने की सुविधा काम करती है?

हां. Android में, रास्ते में बदलाव करके यात्रा का सिम्युलेशन करने के लिए, simulateLocationsAlongNewRoute पर कॉल करें. simulateLocationsAlongExistingRoute तरीके में, मौजूदा रास्ते में किए गए बदलावों को अनदेखा किया जाता है.

iOS में, GMSLocationSimulator.simulateAlongNewRouteToDestinations का इस्तेमाल करके, यात्रा को सिम्युलेट करें. इसमें रास्ते में बदलाव भी शामिल है. अगर आपको रूट में किसी बदलाव की उम्मीद नहीं है, तो GMSLocationSimulator.simulateLocationsAlongExistingRoute या GMSLocationSimulator.simulateAlongNewRouteToDestinations का इस्तेमाल किया जा सकता है.

वर्कफ़्लो

नेविगेशन फ़्रैगमेंट वाली किसी गतिविधि को बंद करने के बाद, सूचना को कैसे खारिज करें?

गतिविधि बंद होने पर भी, नेविगेशन के दौरान सूचना दिखती रहती है. गाड़ी के मंज़िल पर पहुंचने के बाद, नेविगेशन बंद हो जाता है और सूचना हट जाती है.

सूचना पर क्लिक को मैनेज करने के लिए, Navigator.startGuidance(intent resumeIntent) का इस्तेमाल करें. resume intent तब ट्रिगर होता है, जब ऐप्लिकेशन का उपयोगकर्ता सूचना पर क्लिक करता है. आम तौर पर, Navigator.startguidance(getIntent()) को मुख्य ऐक्टिविटी से कॉल किया जाता है. इससे ऐप्लिकेशन का इस्तेमाल करने वाला व्यक्ति जब सूचना पर क्लिक करता है, तब ऐक्टिविटी फिर से शुरू हो जाती है.

मोबिलिटी सेवाएं

मोबिलिटी सेवाओं के ग्राहकों के लिए, Navigation SDK का इस्तेमाल करना कैसे अलग है?

Google Maps Platform की मोबिलिटी सेवाएं, एपीआई और एसडीके का कलेक्शन उपलब्ध कराती हैं. इससे परिवहन और लॉजिस्टिक्स से जुड़े कारोबारों की ज़रूरतों को पूरा करने में मदद मिलती है. मोबिलिटी सेवाओं के ग्राहकों के लिए, Navigation SDK का इस्तेमाल आम तौर पर इससे जुड़ी सेवाओं के साथ किया जाता है. जैसे, रास्ते को ऑप्टिमाइज़ करना, डिस्पैच करना, टास्क को ट्रैक करना, फ्लीट के आंकड़ों का विश्लेषण करना वगैरह. मोबिलिटी सेवाओं के ग्राहकों के लिए, Navigation SDK का बिल अलग तरीके से भेजा जाता है. ज़्यादा जानकारी के लिए, मोबिलिटी सेवाओं से जुड़ा दस्तावेज़ देखें.

मोबिलिटी प्रॉडक्ट, सिर्फ़ चुनिंदा ग्राहकों के लिए उपलब्ध हैं. ज़्यादा जानकारी के लिए, अपने सेल्स रेप्रज़ेंटेटिव से संपर्क करें.

मुझे कैसे पता चलेगा कि मैं Mobility Services का ग्राहक हूं?
अगर आपको पक्के तौर पर नहीं पता कि आपने Navigation SDK को Mobility Services के ग्राहक के तौर पर लागू किया है या नहीं, तो अपने कोड में ReportBillableEvent कॉल ढूंढें. सिर्फ़ Mobility Services के ग्राहकों को ReportBillableEvent तरीके का इस्तेमाल करना चाहिए.

मोबिलिटी सेवाओं के ग्राहकों के लिए, Navigation SDK की बिलिंग कैसे की जाती है?
मोबिलिटी सेवाओं के ग्राहकों के लिए, Navigation SDK की बिलिंग और कीमत इस बात पर निर्भर करती है कि आपने Google Maps Platform के साथ कौन सा कानूनी समझौता किया है. मोबिलिटी सेवाओं को लागू करने के लिए, आपसे सही शुल्क लिया जा रहा है या नहीं, इसकी पुष्टि करने के बारे में जानकारी पाने के लिए, बिलिंग की पुष्टि लेख पढ़ें. मोबिलिटी सेवाओं की बिलिंग के बारे में ज़्यादा जानकारी के लिए, अपने सेल्स रेप्रज़ेंटेटिव से संपर्क करें.

Navigation SDK के किन एपीआई का इस्तेमाल सिर्फ़ मोबिलिटी सेवाओं के ग्राहक कर सकते हैं?

Navigation SDK में कई ऐसे एपीआई हैं जिनका इस्तेमाल सिर्फ़ मोबिलिटी सेवाओं के ग्राहक कर सकते हैं. Google, इन ग्राहकों से हर लेन-देन के हिसाब से शुल्क लेता है. अगर आपने मोबिलिटी सेवाओं का इस्तेमाल नहीं किया है, तो यहां दिए गए तरीके काम नहीं करेंगे:

अगर मैं Mobility Services का ग्राहक हूं, तो क्या Navigation SDK के ऐसे वर्शन का इस्तेमाल किया जा सकता है जो Mobility Services के साथ काम नहीं करता?

हां, मोबिलिटी सेवाओं के ग्राहक, Navigation SDK के मोबिलिटी सेवाओं और गैर-मोबिलिटी सेवाओं, दोनों के लिए उपलब्ध वर्शन का इस्तेमाल कर सकते हैं. हालांकि, किसी ऐप्लिकेशन में एक बार में सिर्फ़ एक ही तरह का इंटिग्रेशन इस्तेमाल किया जा सकता है. आपको एक नया Google Cloud प्रोजेक्ट, बिलिंग खाता, और एपीआई पासकोड भी बनाना होगा. यह पासकोड, उस पासकोड से अलग होना चाहिए जिसका इस्तेमाल आपने Mobility Services को लागू करने के लिए किया था. ज़्यादा जानकारी के लिए, Navigation SDK के सेटअप की खास जानकारी देखें.

Navigation SDK के Mobility Services के अलावा किसी अन्य वर्शन का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, अपने Google खाता प्रतिनिधि से संपर्क करें. इसमें किसी ऐप्लिकेशन को एक वर्शन से दूसरे वर्शन पर माइग्रेट करने के बारे में जानकारी भी शामिल है.

ध्यान दें: अगर आप Mobility Services के ग्राहक नहीं हैं और आपको Mobility Services के एपीआई और एसडीके के कलेक्शन के बारे में ज़्यादा जानना है, तो Google Maps Platform की सेल्स टीम से संपर्क करें.