रास्ते की जानकारी (इसमें रास्ता बदलना भी शामिल है) के लिए की गई कैलकुलेशन में, सबसे कम समय में पहुंचने वाले रास्ते को डिफ़ॉल्ट सबसे सही रास्ता के तौर पर दिखाया जाता है. हालांकि, रूटिंग की रणनीति को बदला जा सकता है, ताकि रूट के छोटे विकल्पों को दिखाया जा सके.
छोटा शब्द का मतलब है कि यह रास्ता, हमारे डिफ़ॉल्ट लागत मॉडल के आधार पर सबसे कम दूरी वाला है. ऐसा हो सकता है कि छोटा रास्ता, सबसे छोटा रास्ता न हो, क्योंकि वह विकल्प सही नहीं हो सकता. उदाहरण के लिए, अगर सबसे छोटा रास्ता 10 कि॰मी॰ का है और इस पर जाने में 50 मिनट लगते हैं. वहीं, दूसरा रास्ता 15 कि॰मी॰ का है, लेकिन इस पर जाने में सिर्फ़ 20 मिनट लगते हैं, तो दूसरा रास्ता सबसे अच्छा है. ऐसा इसलिए, क्योंकि पांच कि॰मी॰ की दूरी कम करने के लिए 30 मिनट ज़्यादा खर्च करना सही नहीं है.
किसी यात्रा के लिए रास्तों की जानकारी पाने की रणनीति सेट करने के बाद, यात्रा पूरी होने तक उसे बदला नहीं जा सकता. किसी मौजूदा यात्रा के लिए रास्तों की रणनीति बदलने के लिए, आपको मंज़िलों को हटाना होगा. इसके बाद, रास्तों की नई रणनीति के साथ उन्हें फिर से सेट करना होगा.
रास्ते की जानकारी पाना
यह तय करने के लिए कि किसी दिए गए वेपॉइंट के लिए, रास्ते की कौनसी रणनीति सबसे सही है, getRouteInfoForDestination() को कॉल करें. इससे आपको डिफ़ॉल्ट रूप से सबसे अच्छे रास्ते और सबसे छोटे रास्ते, दोनों की जानकारी मिलेगी. इसमें किसी डेस्टिनेशन वेपॉइंट तक पहुंचने में लगने वाला समय और दूरी शामिल होती है.
यह जानकारी, कॉलबैक में मौजूद
GMSNavigationRouteInfo
से मिलती है.
उदाहरण
यहां दिए गए कोड के उदाहरण में, राउटिंग की दोनों रणनीतियों के लिए रास्ते की जानकारी पाने का तरीका बताया गया है.
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
रूटिंग की रणनीति सेट करना
setDestinations() को कॉल करते समय, GMSNavigationRoutingOptions का इस्तेमाल करके और routingStrategy को सेट करके, रूटिंग की रणनीति को कॉन्फ़िगर किया जा सकता है.
routingStrategy इनमें से कोई एक वैल्यू लेता है:
| इन्यूमरेशन वैल्यू | ब्यौरा |
|---|---|
| GMSNavigationRoutingStrategyDefaultBest | यह नेविगेशन एसडीके के डिफ़ॉल्ट कॉस्ट मॉडल के हिसाब से रास्तों को रैंक करता है. यह रूटिंग की डिफ़ॉल्ट रणनीति है. |
| GMSNavigationRoutingStrategyShorter | यह दूरी के हिसाब से रास्तों को रैंक करता है. सबसे ज़्यादा रैंक वाला रास्ता, दिखाए गए रास्तों में सबसे छोटा होता है. |
उदाहरण
यहां दिए गए कोड के उदाहरण में, छोटे रास्ते के लिए राउटिंग की रणनीति सेट करने का तरीका बताया गया है.
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
ऐसे रास्ते जिनमें फ़ेरी शामिल हो
डिफ़ॉल्ट रूप से, iOS के लिए Navigation SDK टूल, फ़ेरी वाले रास्तों को शामिल नहीं करता है. अगर आपको अपने रास्तों में फ़ेरी के विकल्प शामिल करने हैं, तो रास्तों से जुड़ी इस प्राथमिकता को बदला जा सकता है. इसके लिए, avoidsFerries को false पर सेट करें, ताकि फ़ेरी के सेगमेंट में यात्रा की जानकारी दिखाई जा सके.
उदाहरण
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
रास्ते के कॉलआउट का फ़ॉर्मैट
सबसे छोटे रास्ते के लिए इस्तेमाल की जाने वाली राउटिंग रणनीति के तहत, रास्ते पर मौजूद कॉलआउट में दूरी की जानकारी दिखती है. हालांकि, ईटीए कॉलआउट का इस्तेमाल किया जा सकता है.
रूट कॉलआउट फ़ॉर्मैट को कॉन्फ़िगर करना
GMSMapView में routeCalloutFormat सेट करके, रूट कॉलआउट का फ़ॉर्मैट बदला जा सकता है. routeCalloutFormat इनमें से कोई एक वैल्यू लेता है:
| इन्यूमरेशन वैल्यू | ब्यौरा |
|---|---|
| GMSNavigationRouteCalloutFormatDefault | यह डिफ़ॉल्ट सबसे सही रास्ते की राउटिंग रणनीति का इस्तेमाल करते समय, बचे हुए समय को दिखाता है. सबसे छोटे रास्ते की राउटिंग की रणनीति का इस्तेमाल करते समय, बची हुई दूरी दिखाता है |
| GMSNavigationRouteCalloutFormatTime | इससे पता चलता है कि वीडियो खत्म होने में कितना समय बाकी है. |
| GMSNavigationRouteCalloutFormatDistance | Dइससे बची हुई दूरी दिखती है. |
उदाहरण
यहां दिए गए कोड के उदाहरण में, रूट कॉलआउट के फ़ॉर्मैट को कॉन्फ़िगर करने का तरीका बताया गया है.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;