रास्ते की योजना बनाना

कभी-कभी, हो सकता है कि आप उपयोगकर्ताओं को अपने ऐप्लिकेशन से मिलने वाले रास्ते की जानकारी को प्लान करना चाहें. Routes API, Routes Preferred API या Route Optimization API से मिले रूट टोकन का इस्तेमाल करके, तय किए गए रास्ते के लिए दो चीज़ें बताई जा सकती हैं:

  • रास्ते के लिए पॉलीलाइन

  • आपके रूट के मकसद

उदाहरण के लिए, यहां रूटिंग के कुछ उदाहरण दिए गए हैं:

  • डिलीवरी में लगने वाले समय को कम करना: खाना डिलीवर करने वाला कोई कारोबार, खाना डिलीवर करने में लगने वाले समय को कम करना चाहेगा.

  • यात्रा में लगने वाले समय या ईंधन की खपत को कम करना: लॉजिस्टिक्स कारोबार, अपने ड्राइवरों की परफ़ॉर्मेंस को बेहतर बनाना और ईंधन की लागत को कम करना चाहता है.

  • मंज़िल तक पहुंचने में लगने वाले समय को कम करना: सेवा देने वाली कंपनी, ऑपरेटर को किसी जॉब रिक्वेस्ट तक पहुंचने में लगने वाले समय को कम करना चाहती है.

  • लागत कम करना और सुरक्षा बढ़ाना: राइड-शेयरिंग की सुविधा देने वाला कोई कारोबार, ऐसा रास्ता ढूंढ सकता है जो यात्रियों के लिए सस्ता हो. साथ ही, सुरक्षा की वजहों से कुछ इलाकों से न गुज़रता हो.

रूट टोकन का इस्तेमाल करके रूट प्लान करने के बारे में ज़्यादा जानने के लिए, Routes API में रूट टोकन पाएं और Route Optimization API में ट्रांज़िशन पॉलीलाइन और रूट टोकन देखें.

रास्ते से जुड़े लक्ष्यों के लिए, रूट टोकन का इस्तेमाल क्यों करें

Routes API, Routes Preferred API या Route Optimization API से मिले रूट टोकन की मदद से, आपको रूट पर ज़्यादा कंट्रोल मिलता है:

  • Navigation SDK के इस्तेमाल के लिए, पहले से कोई रास्ता तय करें.

  • Navigation SDK के लिए सबसे सही रास्ता चुनें. अगर Routes API में रास्ते जनरेट करते समय, रास्ते के टोकन का अनुरोध किया जाता है, तो आपको जनरेट किए गए हर रास्ते के लिए एक टोकन मिलता है. इसके बाद, आपको जिस रास्ते का इस्तेमाल करना है उसके लिए टोकन चुना जा सकता है. इसके लिए, आपको टोकन को Navigation SDK टूल को पास करना होगा.

  • पहले से ही कीमत का अनुमान लगाएं. इसमें ईटीए और दूरी का अनुमान लगाना शामिल है. हालांकि, असल लागत और समय अलग-अलग हो सकता है, लेकिन इस अनुमान से, रास्ते की अनुमानित और असल लागत के बीच का अंतर कम हो जाता है.

  • रास्ते से जुड़े ज़्यादा बेहतर मकसद तय करें. जैसे, ईको-फ़्रेंडली रास्ता या सबसे छोटा रास्ता.

रूट टोकन कैसे काम करते हैं

रूट के मकसद का इस्तेमाल करके रूट प्लान करने के लिए, Routes API, Routes Preferred API या Route Optimization API का इस्तेमाल किया जा सकता है. इनमें से किसी भी एपीआई से मिले रूट टोकन को Navigation SDK टूल को पास किया जा सकता है, ताकि यह आपके वाहन को रास्ता दिखाने का तरीका बता सके.

रूट टोकन का अनुरोध करने और उसका इस्तेमाल करने पर क्या होता है:

  1. Routes API, Routes Preferred API या Route Optimization API, एन्क्रिप्ट किया गया रूट टोकन दिखाता है. इसमें रूट पॉलीलाइन और रूट के मकसद शामिल होते हैं.

  2. Navigation SDK को रूट टोकन पास किया जाता है.

  3. Navigation SDK, आपके तय किए गए रास्ते पर नेविगेशन शुरू करता है. भले ही, कोई तेज़ रास्ता उपलब्ध हो.

  4. यात्रा के दौरान, अगर ट्रैफ़िक या सड़क की स्थिति बदलती है या वाहन तय किए गए रास्ते से हट जाता है, तो Navigation SDK एक नया रास्ता कैलकुलेट करता है. यह रास्ता, आपके रूट टोकन में सेट किए गए रास्ते के मकसद और रूटिंग के विकल्पों के हिसाब से तय होता है.

इस प्रोसेस से, असल रास्ता आपके तय किए गए रास्ते के काफ़ी करीब होता है.

तय किए गए रास्ते का पूरी तरह से पालन न करने की वजह

नेविगेशन, आपके तय किए गए रास्ते पर शुरू होता है. हालांकि, इन स्थितियों में असल रास्ता अलग हो सकता है:

  • वाहन, तय किए गए शुरुआती पॉइंट से दूर शुरू होता है.
  • यात्रा के दौरान ट्रैफ़िक या सड़क की स्थिति में बदलाव होने पर.
  • वाहन, तय किए गए रास्ते से हट जाता है.

इन अंतरों की वजह से, दूरी, ईटीए, और यात्रा से जुड़ी अन्य अहम चीज़ों पर असर पड़ सकता है.

रूट टोकन का इस्तेमाल करके रूट प्लान करना

रूट टोकन बनाकर और फिर उसे Navigation SDK टूल को पास करके, रूट प्लान किया जा सकता है. इसके लिए, यह तरीका अपनाएं:

पहला चरण: Routes API, Routes Preferred API या Route Optimization API का इस्तेमाल करके रूट टोकन बनाना

  1. इनमें से किसी एक तरीके का इस्तेमाल करके, रूट टोकन का अनुरोध करें:

  2. रूट टोकन का इस्तेमाल करने की ज़रूरी शर्तें पूरी करने के लिए, Routes API या Routes Preferred API का अनुरोध सेट अप करें:

    • travelMode को DRIVE या TWO_WHEELER पर सेट करें.
    • routingPreference को TRAFFIC_AWARE या TRAFFIC_AWARE_OPTIMAL पर सेट करें.
    • Via वेपॉइंट का इस्तेमाल न करें.

दूसरा चरण: Navigation SDK को रूट टोकन पास करना

  1. रूट टोकन को सेव करना: Navigation SDK में, रूट टोकन को सेव करने के लिए एक स्ट्रिंग सेट अप करें. उदाहरण के लिए:

    let routeToken = "route token returned by Routes API"
    

    लौटाए गए रूट टोकन का उदाहरण:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. mapView.navigator.setDestinations का इस्तेमाल करके, Navigation SDK को रूट टोकन पास करें. डेस्टिनेशन के लिए वही वेपॉइंट तय करें जिनका इस्तेमाल आपने रूट टोकन बनाते समय किया था:

    mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
    

    setDestinations तरीका, अनुरोध की स्थिति को उसके कॉलबैक में पास करता है. अगर उपयोगकर्ता की जगह से दी गई मंज़िल तक का रास्ता मिल जाता है, तो स्टेटस .OK (GMSRouteStatusOK) होता है.

एक से ज़्यादा स्टॉप वाली स्थितियां

ज़्यादा से ज़्यादा 25 वेपॉइंट कॉन्फ़िगर किए जा सकते हैं.

setDestinations तरीके से, एक से ज़्यादा स्टॉप वाली यात्राओं के लिए निर्देश नहीं पाए जा सकते. यात्रा के अगले पड़ाव पर जाने के लिए, continueToNextDestinationWithCompletion() का इस्तेमाल करें.

उदाहरण

यहां दिए गए कोड के उदाहरणों में, प्लान किए गए रास्ते की जानकारी पाने का तरीका बताया गया है.

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!

let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:location title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
                                                                            title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";

[mapView.navigator setDestinations:@[waypoint1, waypoint2]
                        routeToken:routeToken
                          callback:^(GMSRouteStatus routeStatus){...}];

रूट टोकन और Navigation SDK टूल कैसे इंटरैक्ट करते हैं

Navigation SDK, आपके तय किए गए रास्ते को इस तरह मैनेज करता है:

  • आपके रूट टोकन में सेट किए गए रूटिंग विकल्पों का इस्तेमाल करता है. यह आपके ऐप्लिकेशन में मौजूद इन सेटिंग का इस्तेमाल नहीं करता. इसमें यात्रा के दौरान नए रूट का हिसाब लगाने की सेटिंग भी शामिल है:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
    • आपके ऐप्लिकेशन में सेट किया गया यात्रा का मोड
  • रास्ते का हिसाब लगाते समय या उसमें बदलाव करते समय, इन सेटिंग का पालन करता है:

    • आपके रूट टोकन से रूट के मकसद, जैसे कि ईको रूटिंग या सबसे छोटा रास्ता. अगर नेविगेशन SDK को रास्ते में बदलाव करना है, तो वह रास्ते के उन मकसद का इस्तेमाल करता है जो आपने रास्ते के टोकन का अनुरोध करते समय बताए थे.

    • आपके ऐप्लिकेशन में मौजूद वेपॉइंट से जुड़े विकल्प, जैसे कि सड़क के किनारे की प्राथमिकता. वेपॉइंट से जुड़े उन्हीं विकल्पों का इस्तेमाल करें जो आपने रूट टोकन का अनुरोध करते समय बताए थे.