रास्ते का हिसाब लगाने (इसमें रास्ता बदलना भी शामिल है) के लिए, उस रास्ते को डिफ़ॉल्ट सबसे अच्छा रास्ता माना जाता है जिस पर चलने में सबसे कम समय लगता है. हालांकि, रूटिंग की रणनीति को बदला जा सकता है, ताकि रूट के छोटे विकल्पों को दिखाया जा सके.
छोटा शब्द का मतलब ऐसे रास्ते से है जो हमारे डिफ़ॉल्ट कॉस्ट मॉडल के आधार पर, सबसे अच्छे रास्तों में सबसे छोटा हो. ऐसा हो सकता है कि छोटा रास्ता, सबसे छोटा रास्ता न हो, क्योंकि वह विकल्प सही नहीं हो सकता. उदाहरण के लिए, अगर सबसे छोटा रास्ता 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);
रूट कॉलआउट का फ़ॉर्मैट
छोटे रास्ते को प्राथमिकता देने पर, रास्ते में मौजूद कॉलआउट में दूरी की जानकारी दिखती है. हालांकि, ईटीए कॉलआउट का इस्तेमाल किया जा सकता है.
रूट कॉलआउट फ़ॉर्मैट को कॉन्फ़िगर करना
setRouteCalloutInfoFormat
in NavigationView (या in NavigationFragment) को कॉल करके, रूट कॉलआउट का फ़ॉर्मैट बदला जा सकता है. setRouteCalloutInfoFormat
इनमें से कोई एक वैल्यू लेता है:
| इन्यूमरेशन वैल्यू | ब्यौरा |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | यह डिफ़ॉल्ट तौर पर सबसे अच्छे रास्ते की राउटिंग की रणनीति का इस्तेमाल करते समय, बचे हुए समय को दिखाता है. सबसे छोटे रास्ते के लिए रूटिंग की रणनीति का इस्तेमाल करते समय, बची हुई दूरी दिखाता है. |
| RouteCalloutInfoFormat.TIME | इससे यह पता चलता है कि वीडियो खत्म होने में कितना समय बाकी है. |
| RouteCalloutInfoFormat.DISTANCE | इससे बची हुई दूरी दिखती है. |
उदाहरण
यहां दिए गए कोड के उदाहरण में, रूट कॉलआउट के फ़ॉर्मैट को कॉन्फ़िगर करने का तरीका बताया गया है.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);