रूटिंग से जुड़ी प्राथमिकताओं में बदलाव करना

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

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

रास्ते के कॉलआउट का फ़ॉर्मैट

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

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

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

एनुमरेशन वैल्यूब्यौरा
RouteCalloutInfoFormat.DEFAULT सबसे सही रास्ते के लिए डिफ़ॉल्ट रूटिंग रणनीति का इस्तेमाल करने पर, बचे हुए समय की जानकारी दिखाता है. कम दूरी के रास्ते की रूटिंग की रणनीति का इस्तेमाल करने पर, बाकी दूरी दिखाता है.
RouteCalloutInfoFormat.TIME बचा हुआ समय दिखाता है.
RouteCalloutInfoFormat.DISTANCE बाकी दूरी दिखाता है.

उदाहरण

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

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);