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

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

यह प्रोसेस, किसी रास्ते पर नेविगेट करने के लिए बताई गई प्रोसेस से अलग है. इसकी वजह यह है:

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