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