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

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

कम समय का मतलब है कि यह रास्ता, हमारे डिफ़ॉल्ट लागत मॉडल के आधार पर, सबसे सही रास्तों में से सबसे कम समय लेता है. ऐसा हो सकता है कि सबसे कम समय वाला रूट, सबसे कम समय वाला रूट न हो. ऐसा इसलिए, क्योंकि यह विकल्प खराब हो सकता है. उदाहरण के लिए, अगर सबसे छोटा रास्ता 10 कि॰मी॰ का है और उस पर जाने में 50 मिनट लगते हैं और दूसरा रास्ता 15 कि॰मी॰ का है, लेकिन उस पर जाने में सिर्फ़ 20 मिनट लगते हैं, तो दूसरा रास्ता सबसे सही है. ऐसा इसलिए, क्योंकि पांच कि॰मी॰ की दूरी कम करने के लिए 30 मिनट का समय खर्च करना सही नहीं है.

किसी यात्रा के लिए रूटिंग की रणनीति सेट करने के बाद, वह तब तक नहीं बदलेगी, जब तक यात्रा पूरी नहीं हो जाती. किसी मौजूदा यात्रा के लिए, रास्ते तय करने की रणनीति बदलने के लिए, आपको डेस्टिनेशन मिटाने होंगे और उन्हें रास्ते तय करने की नई रणनीति के साथ फिर से सेट करना होगा.

रास्ते की जानकारी पाना

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

यह जानकारी RouteInfo से मिलती है और इसे ListenableResultFuture में दिखाया जाता है.

उदाहरण

यहां दिए गए कोड के उदाहरण में, दोनों रूटिंग रणनीतियों के लिए रास्ते की जानकारी पाने का तरीका बताया गया है.

ListenableResultFuture<RouteInfo> routeInfoFuture =
        navigator.getRouteInfo(waypoint, routingOptions);

रूटिंग की रणनीति सेट करना

setDestinations() कॉल करते समय, RoutingOptions.routingStrategy सेट करके रूटिंग की रणनीति को कॉन्फ़िगर किया जा सकता है.

RoutingOptions.routingStrategy, सूची में दी गई इनमें से कोई एक वैल्यू लेता है:

एनोटेशन की वैल्यूब्यौरा
RoutingStrategy.DEFAULT_BEST नेविगेशन 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);