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

कभी-कभी, आपको यह तय करना पड़ सकता है कि आपका ऐप्लिकेशन उपयोगकर्ताओं को कौन-सा रास्ता दिखाएगा. 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 को पास करें. इसके लिए, यहां दिया गया तरीका अपनाएं:

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

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

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

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

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

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

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

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

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. Navigator.setDestinations तरीके का इस्तेमाल करके, Navigation 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 के बीच इंटरैक्शन कैसे होता है

यहां बताया गया है कि Navigation SDK से जनरेट किया गया रूट और रूट टोकन में प्लान किया गया रूट, एक-दूसरे के साथ कैसे इंटरैक्ट करते हैं:

  • Overrides, पहले से सेट किए गए किसी भी डेस्टिनेशन को बदल देता है.

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

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

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

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • इनके मुताबिक काम करता है:

    • रास्ते में पड़ने वाली जगह से जुड़े विकल्प, जैसे कि सड़क के किस तरफ़ से जाना है.

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