मोड़-दर-मोड़ डेटा फ़ीड, उन डिवाइसों को सिर्फ़ नेविगेशन की जानकारी देता है जिन्हें मैप के आधार पर नेविगेशन के निर्देश देने के लिए डिज़ाइन नहीं किया गया है. यह आपके दिए गए एलिमेंट के हिसाब से, आगे की गतिविधियों की जानकारी देता है:
- आइकॉन (बाएं, दाएं, यू-टर्न)
- गोल चक्कर में टर्न के नंबर
- सड़कों के नाम
- नेविगेशन के अगले चरण या मंज़िल तक पहुंचने में लगने वाले अनुमानित समय और दूरी की जानकारी
मोड़-दर-मोड़ फ़ीड का इस्तेमाल करके, ऐसे अनुभव बनाए जा सकते हैं जहां Navigation SDK का पूरा यूज़र इंटरफ़ेस (यूआई) सही नहीं होता. जैसे, छोटी स्क्रीन वाले डिसप्ले के लिए. उदाहरण के लिए, इसका इस्तेमाल दोपहिया वाहन चलाने वाले लोगों के लिए किया जा सकता है. इसमें, उन्हें सिर्फ़ नेविगेशन से जुड़े निर्देश दिखाए जा सकते हैं, ताकि वे बिना किसी रुकावट के अपनी मंज़िल तक तेज़ी से और सुरक्षित तरीके से पहुंच सकें.
नेविगेशन के लिए ज़रूरी डिसप्ले एलिमेंट
नेविगेशन के हर चरण के लिए मुख्य फ़ील्ड में, सड़क का पूरा नाम,
मोड़, और चरण की कुल दूरी शामिल होती है. ये फ़ील्ड,
GMSNavigationStepInfo में उपलब्ध होते हैं.
पूरी यात्रा के लिए, आपको मौजूदा चरण या मंज़िल तक पहुंचने में लगने वाला बचा हुआ समय और दूरी दिखानी पड़ सकती है. यह सारी जानकारी GMSNavigationNavInfo में उपलब्ध है.
दाईं ओर दी गई इमेज में, नेविगेशन के इन ज़रूरी एलिमेंट का एक उदाहरण दिखाया गया है.
इवेंट लिसनर सेट अप करना
सिर्फ़ नेविगेशन डेटा का इस्तेमाल करने के लिए, आपको didChangeNavInfo इवेंट के लिए इवेंट लिसनर लागू करना होगा. इवेंट लिसनर में, यात्रा और चरण की जानकारी ऐक्सेस करें, ताकि उपयोगकर्ताओं को रास्ते के दिशा-निर्देश दिए जा सकें.
इवेंट हैंडलर लागू करने के लिए, मैप के व्यू कंट्रोलर को GMSNavigatorListener प्रोटोकॉल लागू करना होगा. iOS के लिए Navigation SDK में इवेंट मैनेज करने के बारे में ज़्यादा जानकारी के लिए, नेविगेशन इवेंट सुनें लेख पढ़ें.
didChangeNavInfo इवेंट को मैनेज करना
अपने ऐप्लिकेशन में मोड़-दर-मोड़ दिशा-निर्देशों की सुविधा जोड़ने के लिए, didChangeNavInfo इवेंट के लिए एक लिसनर बनाएं. इवेंट लिसनर में, मोड़-दर-मोड़ दिशा-निर्देशों की सुविधा को कंट्रोल करने के लिए, इन क्लास और enum का इस्तेमाल करें:
GMSNavigationNavInfo— नेविगेशन की स्थिति के बारे में जानकारी देने वाली क्लास.GMSNavigationStepInfo— यह क्लास, नेविगेशन रूट के किसी एक चरण के बारे में जानकारी देती है.GMSNavigationNavState— Enum, जो नेविगेशन की मौजूदा स्थिति के बारे में बताता है. जैसे, रास्ते में है, रास्ता बदला जा रहा है या रुका हुआ है.GMSNavigationDrivingSide— Enum, जिससे यह तय होता है कि यह चरण दाईं ओर ड्राइव करने वाले रास्ते पर है या बाईं ओर ड्राइव करने वाले रास्ते पर.GMSNavigationManeuver— Enum, जो नेविगेशन से जुड़ी कार्रवाई के बारे में बताता है. जैसे, बाईं ओर मुड़ना या दाईं ओर मुड़ना.
यहां didChangeNavInfo इवेंट के लिए, इवेंट लिसनर के उदाहरण दिए गए हैं:
Swift
// ViewController.swift class SomeViewController: UIViewController { ... mapView.navigator?.add(self); ... } extension SomeViewController: GMSNavigatorListener { func navigator(_ navigator: GMSNavigator, didUpdateNavInfo navInfo: GMSNavigationNavInfo) { // Get the current step information if navInfo.navState == .enroute { if let currentStep = navInfo.currentStep { ... roadNameLabel.text = currentStep.simpleRoadName ... } } } }
Objective-C
// ViewController.h @interface SomeViewController () <GMSNavigatorListener> @end // ViewController.m @implementation SomeViewController // Some initialization code. ... { ... [_mapView.navigator addListener:self]; ... } #pragma mark GMSNavigatorListener - (void)navigator:(GMSNavigator *)navigator didUpdateNavInfo:(GMSNavigationNavInfo *)navInfo { // Get the current step information if (navInfo.navState == GMSNavigationNavStateEnroute) { GMSNavigationStepInfo *currentStep = navInfo.currentStep; if (currentStep) { ... roadNameLabel.text = currentStep.simpleRoadName; ... } } ... }
नेविगेशन की स्थितियां
नेविगेशन की मौजूदा स्थिति जानने के लिए, GMSNavigationNavInfo की navState प्रॉपर्टी का इस्तेमाल करें. यह स्थिति इनमें से कोई एक हो सकती है:
Enroute -
GMSNavigationNavStateEnrouteस्टेटस का मतलब है कि गाइडेड नेविगेशन चालू है और उपयोगकर्ता दिए गए रास्ते पर है. अगले टर्न की जानकारी उपलब्ध है.रास्ता बदला जा रहा है -
GMSNavigationNavStateReroutingका मतलब है कि नेविगेशन की प्रोसेस जारी है, लेकिन नेविगेटर नया रास्ता खोज रहा है. रास्ता बदलने का अगला चरण उपलब्ध नहीं है, क्योंकि अभी तक कोई नया रास्ता नहीं मिला है.Stopped -
GMSNavigationNavStateStoppedका मतलब है कि नेविगेशन खत्म हो गया है. उदाहरण के लिए, जब उपयोगकर्ता ऐप्लिकेशन में नेविगेशन बंद कर देता है, तो नेविगेशन बंद हो जाता है. सैंपल के तौर पर मिले ऐप्लिकेशन में,GMSNavigationNavStateStoppedस्टेटस, नेविगेशन की जानकारी वाले डिसप्ले को हटा देता है. इससे, निर्देश देने वाले चरण को दिखने से रोका जा सकता है.
लेन गाइड
Navigation SDK, नेविगेशन टर्न कार्ड में लेन को GMSNavigationLane और GMSNavigationLaneDirection डेटा ऑब्जेक्ट के तौर पर दिखाता है. GMSNavigationLane ऑब्जेक्ट, नेविगेशन के दौरान किसी खास लेन को दिखाता है. इसमें GMSNavigationLaneDirection ऑब्जेक्ट की एक सूची होती है. इस सूची में, उन सभी टर्न की जानकारी होती है जो इस लेन से लिए जा सकते हैं.
recommended फ़ील्ड का इस्तेमाल करके, यह बताया जाता है कि ड्राइवर को लेन में किस दिशा में जाना चाहिए.

लेन गाइड का उदाहरण
नीचे दिए गए स्निपेट में, पिछले स्क्रीनशॉट में दिखाई गई लेन के डेटा को दिखाया गया है.
// Lane 1
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeNormalLeft, /*recommended=*/ true}]
// Lane 2
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeNormalLeft, /*recommended=*/ true}]
// Lane 3
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeStraight, /*recommended=*/ false}]
// Lane 4
GMSNavigationLaneDirections =
[{/*GMSNavigationLaneShape=*/
GMSNavigationLaneShapeStraight, /*recommended=*/ false},
{/*GMSNavigationLaneShape=*/ GMSNavigationLaneShapeNormalRight, /*recommended=*/ false}]
लेन गाइड की इमेज
Navigation SDK, नेविगेशन के हर चरण के लिए लेन की इमेज जनरेट करने की सुविधा देता है.
जैसा कि GMSNavigationStepInfo ने बताया है. ये आइकॉन, CarPlay के इमेज साइज़ से जुड़े दिशा-निर्देशों के मुताबिक हैं.
Swift
let currentStepInfo = navInfo.currentStep let options = GMSNavigationStepImageOptions() options.maneuverImageSize = .square96 options.screenMetrics = UIScreen.mainScreen let maneuverImage = currentStepinfo.maneuverImage(options: options)
Objective-C
GMSNavigationStepInfo *stepInfo = navInfo.currentStep; GMSNavigationStepImageOptions *options = [[GMSNavigationStepImageOptions alloc] init]; options.maneuverImageSize = GMSNavigationManeuverImageSizeSquare96; options.screenMetrics = UIScreen.mainScreen; UIImage* maneuverImage = [stepInfo maneuverImageWithOptions:options];
रास्ते के निर्देशों के लिए आइकॉन बनाना
![]()
GMSNavigationManeuver
enum, नेविगेट करते समय होने वाले हर संभावित मैन्यूवर को तय करता है. साथ ही, GMSNavigationStepInfo की maneuver प्रॉपर्टी से, किसी चरण के लिए मैन्यूवर पाया जा सकता है.
आपको दिशा-निर्देशों के आइकॉन बनाने होंगे और उन्हें उनसे जुड़े दिशा-निर्देशों के साथ जोड़ना होगा.
कुछ निर्देशों के लिए, आइकॉन के साथ वन-टू-वन मैपिंग सेट अप की जा सकती है. जैसे,
GMSNavigationManeuverDestinationLeft और
GMSNavigationManeuverDestinationRight. हालांकि, कुछ दिशा-निर्देशों की विशेषताएं अन्य दिशा-निर्देशों से मिलती-जुलती होती हैं. इसलिए, हो सकता है कि आप एक से ज़्यादा दिशा-निर्देशों को एक ही आइकॉन पर मैप करना चाहें. उदाहरण के लिए, GMSNavigationManeuverTurnLeft और GMSNavigationManeuverOnRampLeft, दोनों को बाईं ओर मुड़ने वाले आइकॉन पर मैप किया जा सकता है.
कुछ निर्देशों में "घड़ी की सुई की दिशा में" या "घड़ी की सुई की उलटी दिशा में" लेबल भी शामिल होता है. एसडीके, किसी देश में ड्राइविंग साइड के आधार पर यह तय करता है कि कौनसा लेबल दिखाना है. उदाहरण के लिए, जिन देशों में सड़क के बाईं ओर गाड़ी चलाई जाती है वहां ड्राइवर गोल चक्कर या यू-टर्न लेते समय घड़ी की सुई की दिशा में मुड़ते हैं. वहीं, जिन देशों में सड़क के दाईं ओर गाड़ी चलाई जाती है वहां ड्राइवर घड़ी की उलटी दिशा में मुड़ते हैं. Navigation SDK यह पता लगाता है कि कोई टर्न, बाईं या दाईं ओर के ट्रैफ़िक में हो रहा है या नहीं. इसके बाद, वह सही टर्न दिखाता है. इसलिए, घड़ी की सुई की दिशा में और घड़ी की सुई की उलटी दिशा में मुड़ने के लिए, आपका आइकॉन अलग हो सकता है.
अलग-अलग तरह के टर्न के लिए, उदाहरण के तौर पर दिए गए आइकॉन देखने के लिए, इसे बड़ा करें
| सैंपल आइकॉन | मोड़-दर-मोड़ रास्ते की जानकारी |
|---|---|
![]() |
DEPARTUNKNOWN |
![]() |
STRAIGHTON_RAMP_UNSPECIFIEDOFF_RAMP_UNSPECIFIEDNAME_CHANGE
|
![]() |
TURN_RIGHTON_RAMP_RIGHT
|
![]() |
TURN_LEFTON_RAMP_LEFT
|
![]() |
TURN_SLIGHT_RIGHTON_RAMP_SLIGHT_RIGHTOFF_RAMP_SLIGHT_RIGHT
|
![]() |
TURN_SLIGHT_LEFTON_RAMP_SLIGHT_LEFTOFF_RAMP_SLIGHT_LEFT
|
![]() |
TURN_SHARP_RIGHTON_RAMP_SHARP_RIGHTOFF_RAMP_SHARP_RIGHT
|
![]() |
TURN_SHARP_LEFTON_RAMP_SHARP_LEFTOFF_RAMP_SHARP_LEFT
|
![]() |
TURN_U_TURN_COUNTERCLOCKWISEON_RAMP_U_TURN_COUNTERCLOCKWISEOFF_RAMP_U_TURN_COUNTERCLOCKWISE
|
![]() |
TURN_U_TURN_CLOCKWISEON_RAMP_U_TURN_CLOCKWISEOFF_RAMP_U_TURN_CLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_RIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_RIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_RIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_RIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_RIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_RIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_STRAIGHT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_STRAIGHT_CLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_LEFT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SLIGHT_LEFT_CLOCKWISE
|
![]() |
ROUNDABOUT_LEFT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_LEFT_CLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_LEFT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_SHARP_LEFT_CLOCKWISE
|
![]() |
ROUNDABOUT_U_TURN_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_U_TURN_CLOCKWISE
|
![]() |
ROUNDABOUT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_CLOCKWISE
|
![]() |
ROUNDABOUT_EXIT_COUNTERCLOCKWISE
|
![]() |
ROUNDABOUT_EXIT_CLOCKWISE
|
![]() |
MERGE_RIGHTOFF_RAMP_RIGHT
|
![]() |
MERGE_LEFTOFF_RAMP_LEFT
|
![]() |
FORK_RIGHTTURN_KEEP_RIGHTON_RAMP_KEEP_RIGHTOFF_RAMP_KEEP_RIGHT
|
![]() |
FORK_LEFTTURN_KEEP_LEFTON_RAMP_KEEP_LEFTOFF_RAMP_KEEP_LEFT
|
![]() |
MERGE_UNSPECIFIED
|
![]() |
DESTINATION
|
![]() |
DESTINATION_RIGHT
|
![]() |
DESTINATION_LEFT
|
![]() |
FERRY_BOAT
|
![]() |
FERRY_TRAIN
|
जनरेट किए गए आइकॉन इस्तेमाल करना
Navigation SDK, किसी GMSNavigationStepInfo के लिए मैन्यूवर आइकॉन जनरेट करने की सुविधा देता है. ये आइकॉन, CarPlay के लिए इमेज के साइज़ से जुड़े दिशा-निर्देशों के मुताबिक हैं.
Swift
let currentStepInfo = navInfo.currentStep let options = GMSNavigationStepImageOptions() options.maneuverImageSize = .square96 options.screenMetrics = UIScreen.mainScreen let maneuverImage = currentStepinfo.maneuverImage(options: options)
Objective-C
GMSNavigationStepInfo *stepInfo = navInfo.currentStep; GMSNavigationStepImageOptions *options = [[GMSNavigationStepImageOptions alloc] init]; options.maneuverImageSize = GMSNavigationManeuverImageSizeSquare96; options.screenMetrics = UIScreen.mainScreen; UIImage* maneuverImage = [stepInfo maneuverImageWithOptions:options];







































