रास्ते का हिसाब लगाने (इसमें रास्ता बदलना भी शामिल है) के दौरान, उस रास्ते को डिफ़ॉल्ट सबसे सही रास्ता के तौर पर दिखाया जाता है जिस पर पहुंचने में सबसे कम समय लगता है. हालांकि, रूटिंग की रणनीति को बदला जा सकता है, ताकि रूट के छोटे विकल्पों को दिखाया जा सके.
शॉर्टर शब्द का मतलब है कि यह रूट, हमारे डिफ़ॉल्ट कॉस्ट मॉडल के आधार पर, सबसे छोटे ऑप्टिमल रूट में से एक है. ऐसा हो सकता है कि कम दूरी वाला रूट, सबसे कम दूरी वाला रूट न हो. इसकी वजह यह है कि वह रूट, यात्रा के लिए अच्छा विकल्प नहीं हो सकता. उदाहरण के लिए, अगर सबसे छोटा रास्ता 10 कि॰मी॰ का है और इस पर यात्रा करने में 50 मिनट लगते हैं. वहीं, दूसरा रास्ता 15 कि॰मी॰ का है, लेकिन इस पर यात्रा करने में सिर्फ़ 20 मिनट लगते हैं, तो दूसरा विकल्प सबसे अच्छा है. ऐसा इसलिए, क्योंकि पांच कि॰मी॰ की दूरी कम करने के लिए 30 मिनट ज़्यादा खर्च करना सही नहीं है.
किसी यात्रा के लिए रास्तों की जानकारी पाने की रणनीति सेट करने के बाद, यात्रा पूरी होने तक उसे बदला नहीं जा सकता. किसी मौजूदा यात्रा के लिए रास्तों की रणनीति बदलने के लिए, आपको मंज़िलों को हटाना होगा. इसके बाद, रास्तों की नई रणनीति के साथ उन्हें फिर से सेट करना होगा.
रास्ते की जानकारी लोड की जा रही है
यह तय करने के लिए कि किसी दिए गए वेपॉइंट के लिए, कौनसा रूट सबसे सही है, getRouteInfo()
को कॉल करें. इससे आपको डिफ़ॉल्ट रूप से सबसे अच्छे रूट और सबसे छोटे रूट, दोनों की जानकारी मिलेगी. इसमें किसी डेस्टिनेशन वेपॉइंट तक पहुंचने में लगने वाला समय और दूरी शामिल होती है.
यह जानकारी RouteInfo
से मिलती है और इसे ListenableResultFuture
में दिखाया जाता है.
उदाहरण
यहां दिए गए कोड के उदाहरण में, राउटिंग की दोनों रणनीतियों के लिए रास्ते की जानकारी पाने का तरीका बताया गया है.
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
रूटिंग की रणनीति सेट करना
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);