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

कभी-कभी, आप उस रूट की योजना बना सकते हैं जो आपका ऐप्लिकेशन उपयोगकर्ताओं को उपलब्ध कराता है. रूट एपीआई (या Routes Preferred API) से मिले रूट टोकन का इस्तेमाल करने से आपको प्लान किए गए रूट के लिए दो चीज़ें तय करने में मदद मिल सकती है:

  • रास्ते के लिए पॉलीलाइन

  • आपके रास्ते के लक्ष्य

उदाहरण के लिए, यहां रूटिंग लक्ष्यों के कुछ उदाहरण दिए गए हैं जो आपके पास हो सकते हैं:

  • डिलीवरी में लगने वाले समय को कम करना: हो सकता है कि खाना डिलीवर करने वाला कारोबार ऑर्डर करने में लगने वाले समय को कम करना चाहे.

  • यात्रा में लगने वाले समय या ईंधन की खपत को कम से कम करना: हो सकता है कि लॉजिस्टिक का कारोबार करने वाले लोग अपने ड्राइवर की काम की क्षमता को बेहतर बनाना चाहें और ईंधन का खर्च कम करना चाहें.

  • डेस्टिनेशन तक पहुंचने में लगने वाले समय को कम करें: हो सकता है कि सेवा डिसपैच ऑपरेशन, ऑपरेटर को नौकरी के अनुरोध पर पहुंचने में लगने वाले समय को कम करना चाहे.

  • लागत कम होती है और सुरक्षा बेहतर होती है: राइड शेयर करने वाला कारोबार कोई ऐसा रास्ता खोजना चाहेगा जिसका किराया यात्रियों के लिए कम हो और सुरक्षा की वजहों से कुछ इलाकों से बचने की कोशिश की जा रही हो.

रूट टोकन का इस्तेमाल करके रूट का प्लान बनाने के बारे में ज़्यादा जानकारी के लिए, रूट टोकन के लिए अनुरोध करना देखें.

रूट के मकसद के लिए रूट टोकन का इस्तेमाल क्यों करना चाहिए

रूट या रूट के लिए प्राथमिकता वाले एपीआई से मिले रूट टोकन की मदद से, आपके पास दिए गए रूट पर ज़्यादा कंट्रोल होता है:

  • नेविगेशन SDK टूल को जब मुमकिन हो, तब इस्तेमाल करने के लिए पहले से ही रूट का प्लान बना लें.

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

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

  • रास्ते के ज़्यादा बेहतर मकसद की जानकारी दें, जैसे कि ईको रूटिंग या सबसे छोटा रास्ता.

रूट एपीआई रूट टोकन के काम करने का तरीका

रूट के लिए तय किए गए मकसद इस्तेमाल करके रूट तय करने के लिए, Routes API या Routes Preferred API का इस्तेमाल किया जा सकता है. रूट एपीआई एक रूट टोकन देता है. इसे नेविगेशन SDK टूल को पास करके, यह बताने के लिए इस्तेमाल किया जा सकता है कि वाहन आपके वाहन को कैसे रूट करता है.

यहां बताया गया है कि रूट एपीआई से रूट टोकन का अनुरोध करने और उसका इस्तेमाल करने पर क्या होता है:

  1. Routes API, एन्क्रिप्ट (सुरक्षित) किया गया रूट टोकन दिखाता है. इसमें रूट पॉलीलाइन और रूट के मकसद शामिल होते हैं.

  2. नेविगेशन SDK टूल को रूट टोकन पास किया जाता है.

  3. नेविगेशन SDK टूल, रास्ते की जानकारी हासिल करता है. इसके अलावा, अगर बदलते हालातों की वजह से रास्ता उपलब्ध नहीं है, तो यह सबसे मिलते-जुलते रूट को शामिल करता है.

  4. अगर ट्रैफ़िक या सड़क की स्थिति में कोई बदलाव होता है या कोई वाहन पहले से तय किए गए रास्ते से हट जाता है, तो रूट में बदलाव किए गए रास्ते, टोकन में दिए गए रास्ते के मकसद के आधार पर, सबसे अच्छे रास्ते को दिखाने की लगातार कोशिश करते हैं.

यह प्रक्रिया आपको बताती है कि असल रास्ता आपके पहले से तय किए गए रास्ते के कितना करीब है.

किसी पहले से तय रास्ते का सटीक रूप से पालन क्यों नहीं किया जा सकता

तय किए गए रास्ते और रास्ते के मकसद को उन दिशा-निर्देशों के तौर पर देखें जिनका पालन करना है: वे कोई निर्देश नहीं होते. सड़क की स्थिति, यात्रा शुरू होने की जगह या दूसरे पैरामीटर में अंतर की वजह से, आपको पहले से तय किए गए रास्ते और निर्देश वाले नेविगेशन से मिले रास्ते में अंतर दिख सकता है. इस अंतर की वजह से, दूरी और ईटीए के लिए आपके तय किए गए और असल लक्ष्य और यात्रा की दूसरी ज़रूरी विशेषताएं मेल नहीं खातीं.

रूट टोकन का इस्तेमाल करके रूट प्लान करना

रूट टोकन बनाकर और फिर उसे नेविगेशन SDK टूल को पास करके, रूट को प्लान किया जा सकता है. इसका तरीका नीचे बताया गया है:

पहला चरण: रूट या रूट के लिए प्राथमिकता वाले एपीआई का इस्तेमाल करके रूट टोकन बनाना

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

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

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

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

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

    let routeToken = "route token returned by Routes API"

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

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

    mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Navigator.setDestinations तरीका, अनुरोध की स्थिति दिखाता है. अगर उपयोगकर्ता की जगह से दिए गए डेस्टिनेशन पर कोई रास्ता मिलता है, तो वह RouteStatus.OK दिखाता है.

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

उदाहरण

नीचे दिए गए कोड उदाहरण, पहले से तय किए गए रास्ते को वापस पाने का तरीका दिखाते हैं.

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:coordinate 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){...}];

रूट टोकन और नेविगेशन SDK टूल कैसे इंटरैक्ट करते हैं

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

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

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

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

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

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • फ़ॉलो करते हैं:

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

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