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

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

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

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