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