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

कभी-कभी, आपको अपने ऐप्लिकेशन में उपयोगकर्ताओं को दिखाए जाने वाले रास्ते का प्लान बनाना पड़ सकता है. 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 को पास करते समय, अपनी पसंद के रूट का टोकन चुना जा सकता है.

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

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

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

रास्ते के मकसद का इस्तेमाल करके, रास्ते की योजना बनाने के लिए 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. रूट टोकन की ज़रूरी शर्तें पूरी करने के लिए, रूट एपीआई या रूट का पसंदीदा एपीआई अनुरोध सेट अप करें:

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

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

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

    String routeToken = "route token returned by Routes API";

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

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

    setDestinations(List destinations, CustomRoutesOptions customRoutesOptions, DisplayOptions displayOptions);

    उदाहरण के लिए:

    CustomRoutesOptions customRoutesOptions =
          CustomRoutesOptions.builder()
          .setRouteToken(routeToken)
          .setTravelMode(TravelMode.DRIVING)
          .build();

Navigator.setDestinations तरीका, अनुरोध की स्थिति दिखाता है. अगर इसे वाहन की जगह से तय की गई मंज़िल तक कोई रास्ता मिलता है, तो यह RouteStatus.OK को लौटा देता है.

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

उदाहरण

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

    ArrayList <Waypoint> destinations = Lists.newArrayList();
    Waypoint waypoint1 =
       Waypoint.builder()
          .setLatLng(10, 20)
          .setTitle("title")
          .setVehicleStopover(true)
          .build();
    destinations.add(waypoint1);
    Waypoint waypoint2 =
       Waypoint.builder()
          .setPlaceId("ChIJYV-J-ziuEmsRIMyoFaMedU4")
          .setTitle("title")
          .setVehicleStopover(true)
           .build()
    destinations.add(waypoint2);

    String routeToken = "route token returned by Routes API";

    CustomRoutesOptions customRoutesOptions =
       CustomRoutesOptions.builder()
          .setRouteToken(routeToken)
          .setTravelMode(TravelMode.DRIVING)
          .build();

    // Existing flow to get a Navigator.
    NavigationApi.getNavigator(...);

    // Existing flow for requesting routes.
    ListenableResultFuture<RouteStatus> routeStatusFuture =
        navigator.setDestinations(destinations, customRoutesOptions);

    // Or with display options.
    DisplayOptions displayOptions = new DisplayOptions();

    ListenableResultFuture<RouteStatus> routeStatusFuture =
        navigator.setDestinations(destinations, customRoutesOptions, displayOptions);

रूट टोकन और Navigation SDK टूल के बीच इंटरैक्शन कैसे होता है

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

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

  • इस्तेमाल किया जाता है, जहां से वाहन शुरू होता है.

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

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

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

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

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