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

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

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