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