ज़रूरत के मुताबिक दिशा-निर्देश बनाना

इस पेज पर, कस्टम नेविगेशन की सुविधा के तहत, पसंद के मुताबिक गाइडेंस बनाने के लिए, आपको जिन चरणों का पालन करना होता है उनके बारे में बताया गया है.

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

  • सबसे पहले, नेविगेशन सेशन को अलग से सेट अप करें. इसके बाद, व्यू कंट्रोलर को कॉल करने के बजाय, सेशन के ज़रिए नेविगेटर इंस्टेंस पाएं.
  • नेविगेशन इवेंट का जवाब देने और उन्हें मैनेज करने के लिए, इवेंट लिसनर सेट अप करें.
  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`];