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