रास्ते का हिसाब लगाने की सुविधा (इसमें रास्ता बदलना भी शामिल है) से, डिफ़ॉल्ट रूप से सबसे अच्छा रास्ता के तौर पर वह रास्ता दिखता है जिस पर नेविगेट करने में कम से कम समय लगता है. हालांकि, रूटिंग की रणनीति बदली जा सकती है, ताकि रास्ते के विकल्पों में से सबसे छोटा रास्ता दिखाया जा सके.
कम शब्द का मतलब है कि यह रास्ता, लागत के हमारे डिफ़ॉल्ट मॉडल के आधार पर, सबसे सही रास्ते में से सबसे कम दूरी का रास्ता है. ऐसा हो सकता है कि कम दूरी का रास्ता, सबसे कम दूरी का रास्ता न हो. ऐसा इसलिए, क्योंकि यह विकल्प खराब हो सकता है. उदाहरण के लिए, अगर सबसे छोटा रास्ता 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){...}];
रूटिंग की रणनीति सेट करना
GMSNavigationRoutingOptions
का इस्तेमाल करके, रूटिंग की रणनीति को कॉन्फ़िगर किया जा सकता है. साथ ही, setDestinations()
को कॉल करते समय routingStrategy
को सेट किया जा सकता है.
routingStrategy
, एनोटेशन की इनमें से कोई एक वैल्यू लेता है:
एनुमरेशन वैल्यू | ब्यौरा |
---|---|
GMSNavigationRoutingStrategyDefaultBest | नेविगेशन SDK टूल के डिफ़ॉल्ट लागत मॉडल के हिसाब से, रास्तों को रैंक करता है. यह ट्रैफ़िक को डिफ़ॉल्ट रूप से भेजने की रणनीति है. |
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;