रूटिंग प्राथमिकताएं एडजस्ट करें

रास्ते की जानकारी का हिसाब लगाने पर (इसमें रास्ता बदलना भी शामिल है), डिफ़ॉल्ट रूप से सबसे अच्छा रास्ता दिखाया जाता है. इस रास्ते पर सबसे कम समय लगता है. हालांकि, रूटिंग की रणनीति बदली जा सकती है, ताकि रास्ते के विकल्पों में से छोटा रास्ता दिखाया जाए.

छोटा का मतलब है, वह रास्ता जो हमारे डिफ़ॉल्ट कॉस्ट मॉडल के हिसाब से, सबसे सही रास्तों में सबसे छोटा है. हो सकता है कि छोटा रास्ता, सबसे छोटा न हो, क्योंकि वह विकल्प सही नहीं हो सकता. उदाहरण के लिए, अगर सबसे छोटा रास्ता 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;