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

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

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