रास्ते का हिसाब लगाने पर (इसमें रास्ता बदलना भी शामिल है), वह रास्ता दिखता है जिसमें नेविगेट करने में सबसे कम समय लगता है. इसे डिफ़ॉल्ट रूप से सबसे अच्छा रास्ता माना जाता है. हालांकि, आपके पास रूटिंग की रणनीति बदलने का विकल्प होता है, ताकि आपको सबसे छोटा रास्ता दिखाया जा सके.
छोटा शब्द का मतलब है कि हमारे डिफ़ॉल्ट लागत मॉडल के आधार पर, सबसे सही रास्तों में से सबसे छोटा रास्ता. ऐसा हो सकता है कि छोटा रास्ता, सबसे छोटा रास्ता न हो, क्योंकि वह विकल्प खराब हो सकता है. उदाहरण के लिए, अगर सबसे छोटा रास्ता 10 कि॰मी॰ का है और उसे तय करने में 50 मिनट लगते हैं और दूसरा रास्ता 15 कि॰मी॰ का है, लेकिन उसे तय करने में सिर्फ़ 20 मिनट लगते हैं, तो दूसरा विकल्प सबसे सही है. ऐसा इसलिए, क्योंकि पांच कि॰मी॰ की दूरी कम करने के लिए 30 मिनट खर्च करना सही नहीं है.
किसी यात्रा के लिए रूटिंग की रणनीति सेट करने के बाद, यात्रा पूरी होने तक उसमें बदलाव नहीं किया जा सकता. किसी मौजूदा यात्रा के लिए रूटिंग की रणनीति बदलने के लिए, आपको डेस्टिनेशन की जानकारी मिटानी होगी. इसके बाद, रूटिंग की नई रणनीति के साथ उन्हें फिर से सेट करना होगा.
राउटिंग की रणनीति सेट करना
setDestinations() को कॉल करते समय, RoutingOptions.routingStrategy को सेट करके, रूटिंग की रणनीति को कॉन्फ़िगर किया जा सकता है.
RoutingOptions.routingStrategy, इनमें से कोई एक एनुमरेशन वैल्यू लेता है:
| एनुमरेशन वैल्यू | जानकारी |
|---|---|
| RoutingStrategy.DEFAULT_BEST | यह Navigation SDK के डिफ़ॉल्ट कॉस्ट मॉडल के हिसाब से, रास्तों को रैंक करता है. यह रूटिंग की डिफ़ॉल्ट रणनीति है. |
| RoutingStrategy.SHORTER | दूरी के हिसाब से रास्तों को रैंक करता है. सबसे अच्छी रैंकिंग वाला रास्ता, दिखाए गए रास्तों में से सबसे छोटा होता है. |
उदाहरण
यहां दिए गए कोड के उदाहरण में, कम दूरी वाले रास्ते की प्राथमिकता सेट करने का तरीका बताया गया है.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
फ़ेरी वाले रूट
डिफ़ॉल्ट रूप से, NavSDK उन रास्तों को शामिल नहीं करता है जिनमें फ़ेरी शामिल होती हैं. अगर आपको अपने रास्तों में फ़ेरी के विकल्प शामिल करने हैं, तो रास्ते की इस प्राथमिकता में बदलाव किया जा सकता है. इसके लिए, avoidFerries को false पर सेट करें. इससे यात्रा के दौरान फ़ेरी के विकल्प दिखेंगे.
उदाहरण
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
रूट कॉलआउट का फ़ॉर्मैट
छोटे रास्ते की प्राथमिकता के तहत, रास्ते के साथ-साथ कॉलआउट में दूरी की जानकारी दिखती है. हालांकि, ईटीए कॉलआउट का इस्तेमाल किया जा सकता है.
रूट कॉलआउट फ़ॉर्मैट को कॉन्फ़िगर करना
NavigationView (या NavigationFragment) में setRouteCalloutInfoFormat को कॉल करके, रूट कॉलआउट का फ़ॉर्मैट बदला जा सकता है. setRouteCalloutInfoFormat, इनमें से कोई एक एनुमरेशन वैल्यू लेता है:
| एनुमरेशन वैल्यू | जानकारी |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | सबसे अच्छे रास्ते की डिफ़ॉल्ट रणनीति का इस्तेमाल करने पर, बचा हुआ समय दिखाता है. सबसे छोटे रास्ते की रणनीति का इस्तेमाल करने पर, बची हुई दूरी दिखाता है. |
| RouteCalloutInfoFormat.TIME | इससे पता चलता है कि वीडियो खत्म होने में कितना समय बाकी है. |
| RouteCalloutInfoFormat.DISTANCE | बची हुई दूरी दिखाता है. |
उदाहरण
यहां दिए गए कोड के उदाहरण में, रूट कॉलआउट फ़ॉर्मैट को कॉन्फ़िगर करने का तरीका बताया गया है.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);