मोड़-दर-मोड़ नेविगेशन की सुविधा देने वाला डेटा फ़ीड, उन डिवाइसों को सिर्फ़ नेविगेशन की जानकारी देता है जिन्हें मैप पर आधारित नेविगेशन की सुविधा देने के लिए डिज़ाइन नहीं किया गया है. यह फ़ीड, आने वाले समय में किए जाने वाले मैन्युवर की जानकारी, आपके दिए गए एलिमेंट के साथ देता है:
- आइकॉन (बाएं, दाएं, यू-टर्न)
- गोल चक्कर में टर्न की संख्या
- सड़क के नाम
- नेविगेशन के अगले चरण या मंज़िल तक पहुंचने के लिए अनुमानित दूरी और समय
मोड़-दर-मोड़ नेविगेशन की सुविधा देने वाले फ़ीड का इस्तेमाल, ऐसे अनुभव बनाने के लिए किया जा सकता है जहां Navigation SDK का पूरा यूज़र इंटरफ़ेस (यूआई) सही नहीं है. जैसे, छोटी स्क्रीन वाले डिसप्ले. उदाहरण के लिए, इसका इस्तेमाल दोपहिया वाहन चलाने वाले लोगों के लिए किया जा सकता है. इसमें, सिर्फ़ नेविगेशन की सुविधा देने वाले निर्देश दिखाए जा सकते हैं. इससे उन्हें कम से कम रुकावटों के साथ, अपनी मंज़िल तक तेज़ी से और ज़्यादा भरोसे के साथ पहुंचने में मदद मिलती है.
नेविगेशन की सुविधा देने वाले ज़रूरी एलिमेंट
नेविगेशन के हर चरण के लिए, प्राइमरी फ़ील्ड में सड़क का पूरा नाम, मैन्युवर, और चरण की कुल दूरी शामिल होती है. ये सभी जानकारी
GMSNavigationStepInfo में उपलब्ध होती है.
पूरी यात्रा के लिए, मौजूदा चरण या मंज़िल तक पहुंचने में लगने वाला बाकी समय और दूरी दिखाई जा सकती है. यह सारी जानकारी
GMSNavigationNavInfo में उपलब्ध होती है.
दाईं ओर मौजूद इमेज में, नेविगेशन की सुविधा देने वाले इन ज़रूरी एलिमेंट का उदाहरण दिखाया गया है.
इवेंट लिसनर सेट अप करना
सिर्फ़ नेविगेशन की सुविधा देने वाले डेटा का इस्तेमाल करने के लिए, आपको didChangeNavInfo इवेंट के लिए इवेंट लिसनर लागू करना होगा. इवेंट लिसनर में, यात्रा और चरण की जानकारी ऐक्सेस करें, ताकि अपने उपयोगकर्ताओं को मोड़-दर-मोड़ नेविगेशन की सुविधा दी जा सके.
इवेंट हैंडलर लागू करने के लिए, मैप के व्यू कंट्रोलर को
GMSNavigatorListener
प्रोटोकॉल लागू करना होगा. iOS के लिए
Navigation SDK में इवेंट मैनेज करने के बारे में ज़्यादा जानकारी पाने के लिए, नेविगेशन के इवेंट के लिए लिसनर देखें.
didChangeNavInfo इवेंट को मैनेज करना
अपने ऐप्लिकेशन में मोड़-दर-मोड़ नेविगेशन की सुविधा जोड़ने के लिए, didChangeNavInfo इवेंट के लिए लिसनर बनाएं. इवेंट लिसनर में, मोड़-दर-मोड़ नेविगेशन को कंट्रोल करने के लिए, इन क्लास और एनम का इस्तेमाल करें:
GMSNavigationNavInfo— यह क्लास, नेविगेशन की स्थिति के बारे में जानकारी तय करती है.GMSNavigationStepInfo— यह क्लास, नेविगेशन के रास्ते में मौजूद किसी एक चरण के बारे में जानकारी तय करती है.GMSNavigationNavState— यह एनम, नेविगेशन की मौजूदा स्थिति तय करता है. जैसे, रास्ते में, रूट बदलना या रुका हुआ.GMSNavigationDrivingSide— यह एनम, यह तय करता है कि यह चरण, बाईं ओर गाड़ी चलाने वाले रास्ते पर है या दाईं ओर गाड़ी चलाने वाले रास्ते पर.GMSNavigationManeuver— यह एनम, नेविगेशन के दौरान की जाने वाली कार्रवाई तय करता है. जैसे, बाईं ओर मुड़ना या दाईं ओर मुड़ना.
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; ... } } ... }
नेविगेशन की स्थितियां
नेविगेशन की मौजूदा स्थिति पाने के लिए, navState प्रॉपर्टी का इस्तेमाल करें. यह स्थिति इनमें से कोई एक हो सकती है:GMSNavigationNavInfo
रास्ते में -
GMSNavigationNavStateEnrouteस्थिति का मतलब है कि गाइडेंस वाला नेविगेशन चालू है और उपयोगकर्ता, दिए गए रास्ते पर है. आने वाले समय में किए जाने वाले मैन्युवर के मौजूदा चरण के बारे में जानकारी उपलब्ध है.रूट बदलना -
GMSNavigationNavStateReroutingका मतलब है कि नेविगेशन जारी है, लेकिन नेविगेटर नया रास्ता ढूंढ रहा है. आने वाले समय में किए जाने वाले मैन्युवर का चरण उपलब्ध नहीं है, क्योंकि अभी तक कोई नया रास्ता नहीं मिला है.रुका हुआ -
GMSNavigationNavStateStoppedका मतलब है कि नेविगेशन खत्म हो गया है. उदाहरण के लिए, जब उपयोगकर्ता ऐप्लिकेशन में नेविगेशन बंद कर देता है, तो नेविगेशन रुक जाता है. सैंपल ऐप्लिकेशन में,GMSNavigationNavStateStoppedस्थिति, नेविगेशन की जानकारी का डिसप्ले साफ़ कर देती है, ताकि चरण के निर्देशों को दिखने से रोका जा सके.
लेन गाइड
Navigation SDK, नेविगेशन के टर्न कार्ड में लेन को
GMSNavigationLane और GMSNavigationLaneDirection डेटा ऑब्जेक्ट के तौर पर दिखाता है. A
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
एनम, नेविगेट करते समय होने वाले हर संभावित मैन्युवर को तय करता है. साथ ही,
GMSNavigationStepInfo की maneuver प्रॉपर्टी से, किसी दिए गए चरण के लिए मैन्युवर की जानकारी पाई जा सकती है.
आपको मैन्युवर के आइकॉन बनाने होंगे और उन्हें उनसे जुड़े मैन्युवर के साथ जोड़ना होगा.
कुछ मैन्युवर के लिए, आइकॉन के साथ एक-से-एक मैपिंग सेट अप की जा सकती है. जैसे, GMSNavigationManeuverDestinationLeft और GMSNavigationManeuverDestinationRight. हालांकि, कुछ मैन्युवर में अन्य मैन्युवर जैसी ही विशेषताएं होती हैं. इसलिए, एक से ज़्यादा मैन्युवर को एक आइकॉन पर मैप किया जा सकता है. उदाहरण के लिए, GMSNavigationManeuverTurnLeft और GMSNavigationManeuverOnRampLeft दोनों को बाईं ओर मुड़ने वाले आइकॉन पर मैप किया जा सकता है.
कुछ मैन्युवर में "Clockwise" या "CounterClockwise" लेबल भी शामिल होता है. एसडीके, किसी देश में गाड़ी चलाने की दिशा के आधार पर यह लेबल तय करता है. उदाहरण के लिए, जिन देशों में सड़क के बाईं ओर गाड़ी चलाई जाती है वहां ड्राइवर, गोल चक्कर या यू-टर्न क्लॉकवाइज़ दिशा में लेते हैं. वहीं, सड़क के दाईं ओर गाड़ी चलाने वाले देशों में ड्राइवर, काउंटरक्लॉकवाइज़ दिशा में लेते हैं. 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];







































