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







































