मोड़-दर-मोड़ डेटा फ़ीड, उन डिवाइसों को सिर्फ़ नेविगेशन की जानकारी देता है जिन्हें मैप पर आधारित नेविगेशन की सुविधा के लिए डिज़ाइन नहीं किया गया है. यह आपको आने वाले समय में किए जाने वाले मैन्युवर की जानकारी देता है. इसके लिए, आपको ये एलिमेंट देने होते हैं:
- आइकॉन (बाएं, दाएं, यू-टर्न)
- गोल चक्कर में मुड़ने के नंबर
- सड़क के नाम
- नेविगेशन के अगले चरण या मंज़िल तक पहुंचने के लिए अनुमानित दूरी और समय
मोड़-दर-मोड़ फ़ीड का इस्तेमाल, ऐसे अनुभव बनाने के लिए किया जा सकता है जहां Navigation SDK का पूरा यूज़र इंटरफ़ेस (यूआई) सही नहीं है. जैसे, छोटी स्क्रीन वाले डिसप्ले के लिए. उदाहरण के लिए, इसका इस्तेमाल दोपहिया वाहन चलाने वाले लोगों के लिए किया जा सकता है. इससे उन्हें सिर्फ़ नेविगेशन की सुविधा से जुड़ी सलाह दी जा सकती है. इससे उन्हें कम रुकावटों के साथ, अपनी मंज़िल तक तेज़ी से और ज़्यादा भरोसे के साथ पहुंचने में मदद मिलती है.
नेविगेशन की सुविधा दिखाने वाले ज़रूरी एलिमेंट
नेविगेशन के हर चरण के लिए, प्राइमरी फ़ील्ड में सड़क का पूरा नाम, मैन्युवर, और चरण की कुल दूरी शामिल होती है. ये सभी जानकारी
GMSNavigationStepInfo में उपलब्ध होती है.
पूरी यात्रा के लिए, आपको मौजूदा चरण या मंज़िल तक पहुंचने में लगने वाला बाकी समय और दूरी दिखानी पड़ सकती है. यह सारी जानकारी
GMSNavigationNavInfo में उपलब्ध होती है.
दाईं ओर की इमेज में, नेविगेशन के इन ज़रूरी एलिमेंट का एक उदाहरण दिखाया गया है.
इवेंट लिसनर सेट अप करना
सिर्फ़ नेविगेशन के डेटा का इस्तेमाल करने के लिए, आपको didChangeNavInfo इवेंट के लिए एक इवेंट लिसनर लागू करना होगा. इवेंट लिसनर में, यात्रा और चरण की जानकारी ऐक्सेस करें, ताकि अपने उपयोगकर्ताओं को मोड़-दर-मोड़ नेविगेशन की सुविधा दी जा सके.
इवेंट हैंडलर लागू करने के लिए, मैप के व्यू कंट्रोलर को
GMSNavigatorListener
प्रोटोकॉल लागू करना होगा. iOS के लिए
Navigation SDK में इवेंट मैनेज करने के बारे में ज़्यादा जानकारी के लिए, नेविगेशन इवेंट के लिए सुनना लेख पढ़ें.
didChangeNavInfo इवेंट को मैनेज करना
didChangeNavInfo इवेंट के लिए एक लिसनर बनाएं, ताकि अपने ऐप्लिकेशन में मोड़-दर-मोड़ नेविगेशन की सुविधा जोड़ी जा सके. इवेंट लिसनर में, मोड़-दर-मोड़ नेविगेशन को कंट्रोल करने के लिए, इन क्लास और एनम का इस्तेमाल करें:
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का मतलब है कि गाइडेड नेविगेशन चालू है और उपयोगकर्ता, दिए गए रास्ते पर है. आने वाले समय में किए जाने वाले मैन्युवर के मौजूदा चरण के बारे में जानकारी उपलब्ध है.Rerouting -
GMSNavigationNavStateReroutingका मतलब है कि नेविगेशन जारी है, लेकिन नेविगेटर कोई नया रास्ता ढूंढ रहा है. आने वाले समय में किए जाने वाले मैन्युवर का चरण उपलब्ध नहीं है, क्योंकि अभी तक कोई नया रास्ता नहीं मिला है.Stopped -
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];







































