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

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

  • रूट के लिए पॉलीलाइन

  • आपके रास्ते के मकसद

उदाहरण के लिए, यहां कुछ ऐसे उदाहरण दिए गए हैं जिनमें रूटिंग के लक्ष्य बताए गए हैं:

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

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

  • डेस्टिनेशन तक पहुंचने में लगने वाला समय कम करना: हो सकता है कि सेवा डिस्पैच ऑपरेशन, ऑपरेटर को किसी काम के अनुरोध पर पहुंचने में लगने वाले समय को कम करना चाहे.

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

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

रूट के मकसद के लिए, रूट टोकन का इस्तेमाल क्यों करना चाहिए

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

  • नेविगेशन SDK टूल का इस्तेमाल करने के लिए, रास्ते की योजना पहले से बनाएं.

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

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

  • रास्ते के ज़्यादा बेहतर लक्ष्य तय करें. जैसे, ईको-राउटिंग या सबसे छोटा रास्ता.

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

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

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

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

  2. आपने नेविगेशन SDK टूल को रास्ते का टोकन दिया है.

  3. नेविगेशन SDK टूल, रास्ता ढूंढता है. अगर बदलती परिस्थितियों की वजह से रास्ता उपलब्ध नहीं है, तो यह सबसे सही रास्ता ढूंढता है.

  4. रास्ते पर ड्राइव करते समय, अगर ट्रैफ़िक या सड़क की अन्य स्थितियों में बदलाव होता है या कोई गाड़ी तय रास्ते से हट जाती है, तो बदले गए रास्ते, टोकन में रास्ते के मकसद के आधार पर सबसे अच्छे रास्ते से मैच करने की लगातार कोशिश करते हैं.

इस प्रोसेस से, यह तय किया जाता है कि आपके प्लान किए गए रास्ते के मुकाबले, असल रास्ता कितना करीब है.

ऐसा हो सकता है कि प्लान किए गए रास्ते पर पूरी तरह से न चला जा सके

अपने प्लान किए गए रास्ते और रास्ते के मकसद को दिशा-निर्देशों के तौर पर देखें: ये ज़रूरी नहीं हैं. आपको प्लान किए गए रास्ते और निर्देशों के साथ मिलने वाले रास्ते में अंतर दिख सकता है. ऐसा, सड़क की स्थिति, शुरू करने की जगह या प्लान किए गए रास्ते को बनाने के बाद बदले गए अन्य पैरामीटर में अंतर की वजह से हो सकता है. इस अंतर की वजह से, यात्रा की अन्य अहम जानकारी के साथ-साथ, दूरी और ईटीए के लिए आपके प्लान किए गए और असल लक्ष्यों में अंतर हो सकता है.

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

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

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

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

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

    • travel_mode को DRIVING या TWO_WHEELER पर सेट करें
    • routing_preference को TRAFFIC_AWARE या TRAFFIC_AWARE_OPTIMAL पर सेट करें
    • Via वेपॉइंट का इस्तेमाल न करें

दूसरा चरण: नेविगेशन SDK टूल को रूट टोकन पास करना

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

    let routeToken = "route token returned by Routes API"

    दिखाए गए रूट टोकन का उदाहरण:

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

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

Navigator.setDestinations तरीका, अनुरोध की स्थिति दिखाता है. अगर उपयोगकर्ता की जगह से दिए गए डेस्टिनेशन तक कोई रास्ता मिलता है, तो यहRouteStatus.OK दिखाता है.

इस तरीके के बारे में ज़्यादा जानकारी के लिए, GMSNavigator.setDestinations देखें.

उदाहरण

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

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:coordinate 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 टूल के बीच इंटरैक्शन कैसे होता है

यहां बताया गया है कि नेविगेशन SDK टूल से जनरेट किया गया रास्ता और रास्ते के टोकन में तय किया गया रास्ता, कैसे इंटरैक्ट करते हैं:

  • पहले से सेट किए गए किसी भी डेस्टिनेशन को ओवरराइड कर देता है.

  • गाड़ी की शुरुआती जगह की जानकारी का इस्तेमाल करता है.

  • सड़क और ट्रैफ़िक की स्थिति के हिसाब से अडजस्ट करता है. देखें कि प्लान किए गए रास्ते पर सटीक तौर पर क्यों नहीं पहुंचा जा सकता.

  • रूटिंग से जुड़े इन विकल्पों को अनदेखा करता है, क्योंकि ये ज़रूरी नहीं हैं:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • फ़ॉलो किया जा रहा है:

    • वेंपॉइंट से जुड़े विकल्प, जैसे कि सड़क के किनारे की प्राथमिकता.

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