रूटिंग प्राथमिकताएं एडजस्ट करें

रास्ते का हिसाब लगाने पर (इसमें रास्ता बदलना भी शामिल है), वह रास्ता दिखता है जिसमें नेविगेट करने में सबसे कम समय लगता है. इसे डिफ़ॉल्ट रूप से सबसे अच्छा रास्ता माना जाता है. हालांकि, रूटिंग की रणनीति को बदला जा सकता है, ताकि रूट के छोटे विकल्पों को दिखाया जा सके.

सबसे छोटा शब्द का मतलब है कि हमारे डिफ़ॉल्ट लागत मॉडल के आधार पर, सबसे सही रास्ते में से सबसे छोटा रास्ता. ऐसा हो सकता है कि छोटा रास्ता, सबसे छोटा रास्ता न हो, क्योंकि वह विकल्प सही नहीं हो सकता. उदाहरण के लिए, अगर सबसे छोटा रास्ता 10 कि॰मी॰ का है और इस पर पहुंचने में 50 मिनट लगते हैं. वहीं, दूसरा रास्ता 15 कि॰मी॰ का है, लेकिन इस पर पहुंचने में सिर्फ़ 20 मिनट लगते हैं, तो दूसरा विकल्प सबसे अच्छा है. ऐसा इसलिए, क्योंकि पांच कि॰मी॰ की दूरी कम करने के लिए 30 मिनट खर्च करना सही नहीं है.

किसी यात्रा के लिए रास्तों की जानकारी पाने की रणनीति सेट करने के बाद, यात्रा पूरी होने तक इसे बदला नहीं जा सकता. किसी मौजूदा यात्रा के लिए रास्तों की रणनीति बदलने के लिए, आपको डेस्टिनेशन मिटाने होंगे. इसके बाद, रास्तों की नई रणनीति के साथ उन्हें फिर से सेट करना होगा.

रास्ते की जानकारी पाना

यह तय करने के लिए कि किसी दिए गए वेपॉइंट के लिए, रास्ते की कौनसी रणनीति सबसे सही है, getRouteInfoForDestination() को कॉल करें. इससे आपको डिफ़ॉल्ट रूप से सबसे अच्छे रास्ते और सबसे छोटे रास्ते, दोनों की जानकारी मिलेगी. इसमें किसी डेस्टिनेशन वेपॉइंट तक पहुंचने में लगने वाला समय और दूरी की जानकारी शामिल होती है.

यह जानकारी, कॉलबैक में GMSNavigationRouteInfo से मिलती है.

उदाहरण

यहां दिए गए कोड के उदाहरण में, राउटिंग की दोनों रणनीतियों के लिए रास्ते की जानकारी पाने का तरीका बताया गया है.

Swift

let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
                                      routingOptions: routingOptions) { routeInfo in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions =
    [[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
                   withRoutingOptions:routingOptions
                             callback:^(GMSNavigationRouteInfo *routeInfo){...}];

रूटिंग की रणनीति सेट करना

GMSNavigationRoutingOptions का इस्तेमाल करके, रूटिंग की रणनीति को कॉन्फ़िगर किया जा सकता है. साथ ही, setDestinations() को कॉल करते समय routingStrategy सेट किया जा सकता है.

routingStrategy इनमें से कोई एक वैल्यू लेता है:

इन्यूमरेशन वैल्यूब्यौरा
GMSNavigationRoutingStrategyDefaultBest Navigation SDK टूल के डिफ़ॉल्ट लागत मॉडल के हिसाब से, रास्तों को रैंक करता है. यह रूटिंग की डिफ़ॉल्ट रणनीति है.
GMSNavigationRoutingStrategyShorter यह कुकी, दूरी के हिसाब से रास्तों को रैंक करती है. सबसे अच्छी रैंकिंग वाला रास्ता, दिखाए गए रास्तों में से सबसे छोटा होता है.

उदाहरण

यहां दिए गए कोड के उदाहरण में, सबसे छोटे रास्ते के हिसाब से राउटिंग की रणनीति सेट करने का तरीका बताया गया है.

Swift

let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
                           routingOptions: routingOptions) { routeStatus in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
            routingOptions:routingOptions
                  callback:^(GMSRouteStatus routeStatus){...}];

फ़ेरी वाले रूट

डिफ़ॉल्ट रूप से, iOS के लिए Navigation SDK टूल, फ़ेरी वाले रास्तों को शामिल नहीं करता है. अगर आपको अपने रास्तों में फ़ेरी के विकल्प शामिल करने हैं, तो रास्तों से जुड़ी इस प्राथमिकता में बदलाव किया जा सकता है. इसके लिए, avoidsFerries को false पर सेट करें, ताकि फ़ेरी के सेगमेंट में यात्रा की जानकारी दिख सके.

उदाहरण

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

रूट कॉलआउट का फ़ॉर्मैट

सबसे छोटे रास्ते के लिए इस्तेमाल की जाने वाली राउटिंग की रणनीति के तहत, रास्ते पर मौजूद कॉलआउट में दूरी की जानकारी दिखती है. हालांकि, ईटीए कॉलआउट का इस्तेमाल किया जा सकता है.

रूट कॉलआउट फ़ॉर्मैट को कॉन्फ़िगर करना

GMSMapView में routeCalloutFormat सेट करके, रूट कॉलआउट का फ़ॉर्मैट बदला जा सकता है. routeCalloutFormat इनमें से कोई एक वैल्यू लेता है:

एनुमरेशन वैल्यूब्यौरा
GMSNavigationRouteCalloutFormatDefault सबसे अच्छे रास्ते की डिफ़ॉल्ट रणनीति का इस्तेमाल करने पर, बचा हुआ समय दिखाता है. सबसे छोटे रास्ते की रणनीति का इस्तेमाल करने पर, बची हुई दूरी दिखाता है
GMSNavigationRouteCalloutFormatTime इससे यह पता चलता है कि वीडियो खत्म होने में कितना समय बाकी है.
GMSNavigationRouteCalloutFormatDistance Dइससे बची हुई दूरी दिखती है.

उदाहरण

यहां दिए गए कोड के उदाहरण में, रूट कॉलआउट के फ़ॉर्मैट को कॉन्फ़िगर करने का तरीका बताया गया है.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;