कभी-कभी, हो सकता है कि आप उपयोगकर्ताओं को अपने ऐप्लिकेशन से मिलने वाले रास्ते की जानकारी को प्लान करना चाहें. 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 में, रूट टोकन को सेव करने के लिए एक स्ट्रिंग सेट अप करें. उदाहरण के लिए:
let routeToken = "route token returned by Routes API"लौटाए गए रूट टोकन का उदाहरण:
{ // Other fields "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g", }mapView.navigator.setDestinationsका इस्तेमाल करके, Navigation SDK को रूट टोकन पास करें. डेस्टिनेशन के वे ही वेपॉइंट तय करें जिनका इस्तेमाल आपने रूट टोकन बनाते समय किया था:mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})setDestinationsतरीका, अनुरोध की स्थिति को उसके कॉलबैक में पास करता है. अगर Google Maps को उपयोगकर्ता की जगह से गंतव्य तक का रास्ता मिल जाता है, तो स्थिति.OK(GMSRouteStatusOK) के तौर पर दिखती है.
एक से ज़्यादा स्टॉप वाले रास्ते
ज़्यादा से ज़्यादा 25 वेपॉइंट कॉन्फ़िगर किए जा सकते हैं.
setDestinations तरीके में, एक से ज़्यादा स्टॉप वाली यात्राएं नहीं की जा सकतीं. यात्रा के अगले चरण पर जाने के लिए, continueToNextDestinationWithCompletion() का इस्तेमाल करें.
उदाहरण
यहां दिए गए कोड के उदाहरणों में, प्लान किए गए रास्ते की जानकारी पाने का तरीका बताया गया है.
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:location 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 के बीच इंटरैक्शन कैसे होता है
यहां बताया गया है कि Navigation SDK से जनरेट किया गया रूट और रूट टोकन में प्लान किया गया रूट, आपस में कैसे इंटरैक्ट करते हैं:
पहले से सेट किए गए किसी भी डेस्टिनेशन को बदलता है.
वाहन की शुरुआती जगह की जानकारी का इस्तेमाल करता है.
सड़क और ट्रैफ़िक के हाल के हिसाब से बदलाव करता है. देखें तय किए गए रास्ते पर क्यों नहीं चला जा सकता.
राउटर से जुड़े इन विकल्पों को अनदेखा करता है, क्योंकि इनकी ज़रूरत नहीं होती:
avoidsHighwaysavoidsTollsavoidsFerrieslicensePlateRestriction
इनके मुताबिक काम करता है:
रास्ते में पड़ने वाली जगह से जुड़े विकल्प, जैसे कि सड़क के किस तरफ़ से जाना है.
रास्ते से जुड़े मकसद. अगर Navigation SDK को दिखाए गए रास्ते में बदलाव करना है, तो वह रास्ते के उन मकसद का इस्तेमाल करता है जो आपने रास्ते का टोकन मांगते समय बताए थे. इस वजह से, आपको वेपॉइंट से जुड़े उन ही विकल्पों का इस्तेमाल करना चाहिए जो आपने Routes API में बताए हैं.