कभी-कभी, आपको अपने ऐप्लिकेशन में उपयोगकर्ताओं को दिखाए जाने वाले रूट की योजना बनानी पड़ सकती है. 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 को पास किया जा सकता है. इससे यह तय किया जा सकेगा कि Navigation SDK, आपके वाहन के लिए रूट कैसे तय करे.
रूट टोकन का अनुरोध करने और उसका इस्तेमाल करने पर क्या होता है, यहां बताया गया है:
Routes API, Routes Preferred API या Route Optimization API, एन्क्रिप्ट (सुरक्षित) किया गया रूट टोकन दिखाता है. इसमें रूट पॉलीलाइन और रूट के मकसद शामिल होते हैं.
रूट टोकन को Navigation SDK पर भेजा जाता है.
नेविगेशन एसडीके, रास्ते की जानकारी वापस पाता है. अगर रास्ते की जानकारी उपलब्ध नहीं है, तो वह सबसे मिलता-जुलता रास्ता वापस पाता है.
रास्ते पर गाड़ी चलाते समय, अगर ट्रैफ़िक या सड़क की अन्य स्थितियां बदल जाती हैं या कोई वाहन प्लान किए गए रास्ते से भटक जाता है, तो बदले गए रास्ते लगातार टोकन में दिए गए रास्ते के लक्ष्यों के आधार पर सबसे अच्छे रास्ते से मेल खाने की कोशिश करते हैं.
इस प्रोसेस से, यह पक्का किया जाता है कि तय किया गया रास्ता, आपके प्लान किए गए रास्ते के ज़्यादा से ज़्यादा करीब हो.
तय किए गए रास्ते पर पूरी तरह से न चलने की वजह
अपने प्लान किए गए रास्ते और रास्ते के लक्ष्यों को दिशा-निर्देशों के तौर पर देखें: ये ज़रूरी नहीं हैं. सड़क की स्थितियों, शुरुआती जगह या अन्य पैरामीटर में बदलाव होने की वजह से, आपको प्लान किए गए रास्ते और दिशा-निर्देशों के साथ नेविगेशन की सुविधा से मिले रास्ते में अंतर दिख सकता है. ये बदलाव, प्लान किया गया रास्ता बनाते समय नहीं थे. इस अंतर की वजह से, दूरी और पहुंचने के अनुमानित समय (ईटीए) के लिए तय किए गए आपके प्लान और असल लक्ष्यों में अंतर आ सकता है. इसके अलावा, यात्रा से जुड़ी अन्य ज़रूरी चीज़ों में भी अंतर आ सकता है.
रूट टोकन का इस्तेमाल करके कोई रास्ता प्लान करना
रूट टोकन बनाकर रूट प्लान किया जा सकता है. इसके बाद, इसे Navigation SDK को पास किया जा सकता है. इसके लिए, यहां दिया गया तरीका अपनाएं:
पहला चरण: Routes API, Routes Preferred API या Route Optimization API का इस्तेमाल करके रूट टोकन बनाना
इनमें से किसी एक तरीके का इस्तेमाल करके, रास्ते के टोकन का अनुरोध करें:
Routes API:
computeRoutes
. Routes API में रूट टोकन का अनुरोध करने के बारे में ज़्यादा जानने के लिए, रास्ता कंप्यूट करना और रूट टोकन का अनुरोध करना लेख पढ़ें.Routes Preferred API:
computeCustomRoutes
. Routes Preferred API में रूट टोकन का अनुरोध करने के बारे में ज़्यादा जानने के लिए, रूट प्लान करना लेख पढ़ें.Route Optimization API:
optimizeTours
याbatchOptimizeTours
. Route Optimization API में रूट टोकन का अनुरोध करने के बारे में ज़्यादा जानकारी के लिए, ट्रांज़िशन पॉलीलाइन और रूट टोकन देखें.
रास्ते के टोकन का इस्तेमाल करने की ज़रूरी शर्तें पूरी करने के लिए, Routes API या Routes Preferred API का अनुरोध सेट अप करें:
travel_mode
कोDRIVING
याTWO_WHEELER
पर सेट करेंrouting_preference
कोTRAFFIC_AWARE
याTRAFFIC_AWARE_OPTIMAL
पर सेट करेंVia
वेपॉइंट का इस्तेमाल न करें
दूसरा चरण: रूट टोकन को Navigation SDK पर पास करना
रूट टोकन सेव करना: Navigation SDK में, रूट टोकन सेव करने के लिए एक स्ट्रिंग सेट अप करें. उदाहरण के लिए:
String routeToken = "route token returned by Routes API";
लौटाए गए रूट टोकन का उदाहरण:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }
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 में बताए थे.