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