कभी-कभी, आपको अपने ऐप्लिकेशन से लोगों को दिखाए जाने वाले रूट की योजना बनानी पड़ सकती है. 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 को पास किया जा सकता है. इससे यह तय करने में मदद मिलती है कि आपका वाहन किस रूट से जाएगा.
रूट टोकन का अनुरोध करने और उसका इस्तेमाल करने पर क्या होता है, यहां बताया गया है:
Routes API, Routes Preferred API या Route Optimization API, एन्क्रिप्ट किया गया रूट टोकन दिखाता है. इसमें रूट की पॉलीलाइन और रूट के मकसद शामिल होते हैं.
रूट टोकन को Navigation SDK को पास करें.
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कोDRIVEया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 से जनरेट किया गया रूट और रूट टोकन में प्लान किया गया रूट कैसे इंटरैक्ट करते हैं, यहां बताया गया है:
पहले से सेट किए गए सभी डेस्टिनेशन को बदल देता है.
वाहन की शुरुआती जगह का इस्तेमाल करता है.
सड़क और ट्रैफ़िक के हाल के हिसाब से बदलाव करता है. प्लान किए गए रूट को पूरी तरह से फ़ॉलो क्यों नहीं किया जा सकता लेख पढ़ें .
रूटिंग से जुड़े इन विकल्पों को अनदेखा करता है , क्योंकि इनकी ज़रूरत नहीं होती:
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction
इन विकल्पों को फ़ॉलो करता है:
वेपॉइंट से जुड़े विकल्प, जैसे कि सड़क के किनारे की प्राथमिकता.
रूट के मकसद. अगर Navigation SDK को वापस लाए गए रूट में बदलाव करना पड़ता है, तो यह रूट टोकन का अनुरोध करते समय तय किए गए रूट के मकसद का इस्तेमाल करता है. इसलिए, आपको वेपॉइंट से जुड़े वही विकल्प इस्तेमाल करने चाहिए जो आपने Routes API में तय किए थे.