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

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

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

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

छोटे रास्ते की प्राथमिकता में, रास्ते के कॉलआउट दूरी की जानकारी दिखाते हैं. हालांकि, ETA कॉलआउट का इस्तेमाल किया जा सकता है.

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

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

इन्यूमिरेशन वैल्यूब्यौरा
RouteCalloutInfoFormat.DEFAULT सबसे अच्छे रास्ते की रूटिंग रणनीति का इस्तेमाल करने पर, बचा हुआ समय दिखाता है. छोटी रास्ते की रूटिंग रणनीति का इस्तेमाल करने पर, बची हुई दूरी दिखाता है.
RouteCalloutInfoFormat.TIME बचा हुआ समय दिखाता है.
RouteCalloutInfoFormat.DISTANCE बची हुई दूरी दिखाता है.

उदाहरण

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

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);