कस्टम नेविगेशन क्या है?

पसंद के मुताबिक नेविगेशन

पसंद के मुताबिक नेविगेशन की सुविधा क्या है?

  • नेविगेशन शुरू करें—आपको नेविगेशन सेशन बनाना होगा. Google नेविगेशन के अनुभव की तरह ही, कस्टम नेविगेशन अनुभव में भी नेविगेशन इंस्टेंस बनाना और डेस्टिनेशन सेट करना शामिल होता है. हालांकि, कस्टमाइज़ किए गए नेविगेशन अनुभव की मदद से ऐसा किया जा सकता है. इसके लिए, पहले आपको GMSNavigationServices का इस्तेमाल करके नेविगेशन सेशन सेट अप करना होगा. नेविगेशन सेशन, एक ऐसा नॉन-यूज़र इंटरफ़ेस (यूआई) ऑब्जेक्ट है जो स्टेट क्लास के साथ काम करता है. यह सेशन या तो व्यू कंट्रोलर के साथ या इसके बिना भी काम कर सकता है.

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

  • ऐक्टिव नेविगेशन—जो आपकी ओर से उपलब्ध कराया जाता है. Google से मिलने वाले नेविगेशन अनुभव और कस्टम नेविगेशन अनुभव के बीच एक और अहम फ़र्क़ है. नेविगेशन SDK टूल में पहले से मौजूद इवेंट मैनेजर को दिशा-निर्देश देने के बजाय, मोड़-दर-मोड़ फ़ीड चालू किया जा सकता है और GMSNavigatorListener के ज़रिए इवेंट हैंडलर लागू किए जा सकते हैं. इससे आपके अनुभव को, नेविगेशन इवेंट सुनें में बताए गए इवेंट का जवाब देने में मदद मिलती है.

  • नेविगेशन का काम खत्म करें—जो आपकी ओर से उपलब्ध कराया गया हो. Google नेविगेशन के साथ, कस्टम नेविगेशन के लिए भी आपको ऐप्लिकेशन के अनुभव के मुताबिक नेविगेशन को बंद करना होता है.

नीचे दी गई टेबल में, कस्टम नेविगेशन की कुछ स्थितियों के बारे में बताया गया है.

उदाहरण के तौर पर स्थिति

अच्छी परफ़ॉर्मेंस वाले चरण

छोटे डिवाइसों, जैसे कि दोपहिया वाहन के लिए आपको ड्राइवर से जुड़ी सलाह सिर्फ़ टेक्स्ट के रूप में देनी होगी.

अपना नेविगेटर बनाएं और छोटी स्क्रीन वाले डिवाइस पर डेटा फ़ीड के तौर पर मोड़-दर-मोड़ निर्देश सेट अप करें. इस दौरान, नेविगेटर ड्राइवर के सेल फ़ोन पर तुरंत दिखेगा. मोड़-दर-मोड़ डेटा फ़ीड चालू करें देखें.

आपके ऐप्लिकेशन का इस्तेमाल करने वाले ड्राइवर अपनी ज़्यादातर यात्रा के लिए मैप की खास जानकारी चाहते हैं. हालांकि, उन्हें शहर की सड़कों के लिए मोड़-दर-मोड़ कम से कम दिशा-निर्देश मिलते हैं.

आपके ऐप्लिकेशन में ड्राइवर को ज़रूरत के मुताबिक Google नेविगेशन अनुभव में जाने और उससे बाहर निकलने की सुविधा मिलनी चाहिए. साथ ही, मंज़िल और यात्रा मोड के लिए नेविगेटर की सेटिंग बदले बिना भी ऐसा किया जाना चाहिए.

मोबिलिटी सेवाओं के ग्राहक: ड्राइवर अक्सर जाने-पहचाने रास्तों पर यात्रा करते हैं और उन्हें किसी दिशा-निर्देश की ज़रूरत नहीं होती. हालांकि, आपको कोई ऐसा तरीका चाहिए जिससे आपका वाहन मैनेजमेंट सिस्टम, डिलीवरी या यात्रा को मैनेज कर सके.

नेविगेटर सेट अप करें. मंज़िल सेट करें और जगह से जुड़े अपडेट पाएं. अपने ऐप्लिकेशन में ड्राइवर SDK टूल इंटिग्रेट करें. ज़्यादा जानकारी के लिए, मांग पर राइड और डिलीवरी या लास्ट माइल फ़्लीट सलूशन के लिए, ड्राइवर SDK टूल की मदद से शुरू करना देखें.

ज़रूरत के मुताबिक सलाह बनाएं

इस सेक्शन में उन हाई-लेवल चरणों के बारे में बताया गया है जिन्हें फ़ॉलो करके आपकी पसंद के मुताबिक दिशा-निर्देश बनाए जाते हैं.

यह प्रोसेस, रूट पर नेविगेट करने में बताई गई प्रोसेस से इस तरह अलग है:

  • आपको पहले नेविगेशन सेशन को स्वतंत्र रूप से सेट अप करना होता है. साथ ही, व्यू कंट्रोलर को कॉल करने के बजाय, सेशन के दौरान नेविगेटर इंस्टेंस पाना होता है.
  • नेविगेशन इवेंट का जवाब देने और उन्हें मैनेज करने के लिए, इवेंट लिसनर सेट अप किया जाता है.

  1. GMSNavigationService.createNavigationSession का इस्तेमाल करके नेविगेशन सेशन बनाएं और setDestination कॉल के साथ नेविगेशन शुरू करें. जहां Google नेविगेशन एक्सपीरियंस, नेविगेशन मैप व्यू से नेविगेटर को शुरू करता है, वहीं GMSNavigationServices नेविगेशन सेशन से इवेंट की स्ट्रीम को कंट्रोल करता है और उसे यूज़र इंटरफ़ेस (यूआई) इंस्टेंस से स्वतंत्र करता है. इसका मतलब है कि यह या तो यूज़र इंटरफ़ेस (यूआई) के बिना चल सकता है या इसे किसी भी यूज़र इंटरफ़ेस (यूआई)-आधारित अनुभव के लिए पास किया जा सकता है. इस तरीके से, आपके ऐप्लिकेशन में नेविगेशन सेशन तब तक चलता रहता है, जब तक कि उससे आखिरी रेफ़रंस नहीं हटाया जाता.
  2. रोड-स्नैप की गई जगह की जानकारी देने वाली कंपनी तय करें. अगर आपको अपने ऐप्लिकेशन से जगह की जानकारी को लगातार ट्रैक करने की सुविधा देनी है, जैसे कि रास्ते के आस-पास नीले बिंदु के साथ नेविगेशन व्यू दिखाते समय, तो जगह की जानकारी देने वाली कंपनी का इस्तेमाल करें.
  3. GMSNavigatorListener प्रोटोकॉल लागू करके, मोड़-दर-मोड़ निर्देश पाने के लिए, लिसनर सेट अप करें. फिर, उस जानकारी को अपने कस्टम नेविगेशन अनुभव में बदल दें. उदाहरण के लिए:
    1. निर्देशों को आसानी से स्क्रीन कास्ट करने के लिए, सिर्फ़ टेक्स्ट वाले फ़ील्ड लागू करें.
    2. अपने यूज़र इंटरफ़ेस (यूआई) के लिए फ़ील्ड डिज़ाइन करें और उन्हें भरें.
  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`];