Method: computeRoutes

टर्मिनल और इंटरमीडिएट वेपॉइंट के सेट के आधार पर, वैकल्पिक वैकल्पिक रास्तों के साथ मुख्य रास्ते की जानकारी देता है.

ध्यान दें: इस तरीके के लिए, इनपुट में रिस्पॉन्स फ़ील्ड मास्क तय करना ज़रूरी है. यूआरएल पैरामीटर $fields या fields का इस्तेमाल करके या एचटीटीपी/gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क दिया जा सकता है. उपलब्ध यूआरएल पैरामीटर और हेडर देखें. यह वैल्यू, फ़ील्ड पाथ की कॉमा से अलग की गई सूची होती है. फ़ील्ड पाथ बनाने के तरीके के बारे में ज़्यादा जानकारी देने वाला दस्तावेज़ देखें.

उदाहरण के लिए, इस तरीके में:

  • सभी उपलब्ध फ़ील्ड का फ़ील्ड मास्क (मैन्युअल जांच के लिए): X-Goog-FieldMask: *
  • रास्ते के लेवल पर यात्रा में लगने वाले समय, दूरी, और पॉलीलाइन का फ़ील्ड मास्क (प्रोडक्शन सेटअप का उदाहरण): X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline

Google, वाइल्डकार्ड (*) रिस्पॉन्स फ़ील्ड मास्क या टॉप लेवल (routes) पर फ़ील्ड मास्क तय करने का सुझाव नहीं देता, क्योंकि:

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

एचटीटीपी अनुरोध

POST https://routespreferred.googleapis.com/v1:computeRoutes

यूआरएल में gRPC ट्रांसकोडिंग सिंटैक्स का इस्तेमाल किया गया है.

अनुरोध का मुख्य भाग

अनुरोध के मुख्य हिस्से में, यहां दिए गए स्ट्रक्चर का डेटा शामिल होता है:

JSON के काेड में दिखाना
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "intermediates": [
    {
      object (Waypoint)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "polylineQuality": enum (PolylineQuality),
  "polylineEncoding": enum (PolylineEncoding),
  "departureTime": string,
  "computeAlternativeRoutes": boolean,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "languageCode": string,
  "units": enum (Units),
  "optimizeWaypointOrder": boolean
}
फ़ील्ड
origin

object (Waypoint)

ज़रूरी है. ऑरिजिन वेपॉइंट.

destination

object (Waypoint)

ज़रूरी है. डेस्टिनेशन वेपॉइंट.

intermediates[]

object (Waypoint)

ज़रूरी नहीं. रास्ते पर पड़ने वाले पॉइंट का एक सेट (टर्मिनल पॉइंट को छोड़कर), जो किसी जगह पर रुकने या वहां से गुजरने के लिए इस्तेमाल किया जाता है. इंटरमीडिएट में ज़्यादा से ज़्यादा 25 वेपॉइंट डाले जा सकते हैं.

travelMode

enum (RouteTravelMode)

ज़रूरी नहीं. परिवहन का साधन बताता है.

routingPreference

enum (RoutingPreference)

ज़रूरी नहीं. यह बताता है कि रूट का हिसाब कैसे लगाया जाए. सर्वर, रास्ते का हिसाब लगाने के लिए, चुनी गई रूटिंग प्राथमिकता का इस्तेमाल करने की कोशिश करता है. अगर रूटिंग प्राथमिकता के कारण कोई गड़बड़ी होती है या अतिरिक्त लंबी प्रतीक्षा अवधि होती है, तो एक गड़बड़ी वापस मिलती है. यह विकल्प सिर्फ़ तब तय किया जा सकता है, जब travelMode की वैल्यू DRIVE या TWO_WHEELER हो. ऐसा न होने पर, अनुरोध पूरा नहीं होगा.

polylineQuality

enum (PolylineQuality)

ज़रूरी नहीं. पॉलीलाइन की क्वालिटी के लिए आपकी प्राथमिकता बताता है.

polylineEncoding

enum (PolylineEncoding)

ज़रूरी नहीं. पॉलीलाइन के लिए पसंदीदा एन्कोडिंग तय करता है.

departureTime

string (Timestamp format)

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

आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण: "2014-10-02T15:01:23Z" और "2014-10-02T15:01:23.045123456Z".

computeAlternativeRoutes

boolean

ज़रूरी नहीं. तय करता है कि रूट के अलावा वैकल्पिक रास्तों की गणना करनी है या नहीं. इंटरमीडिएट वेपॉइंट वाले अनुरोधों के लिए कोई दूसरा रास्ता नहीं दिखाया जाता.

routeModifiers

object (RouteModifiers)

ज़रूरी नहीं. शर्तों का एक सेट, जो रास्ते की गणना के तरीके को प्रभावित करती है.

languageCode

string

ज़रूरी नहीं. BCP-47 भाषा कोड, जैसे कि "en-US" या "sr-Latn". ज़्यादा जानकारी के लिए, यूनिकोड लोकल आइडेंटिफ़ायर देखें. इस्तेमाल की जा सकने वाली भाषाओं की सूची के लिए, भाषा की सुविधा पर जाएं. अगर आपने यह वैल्यू नहीं दी है, तो डिसप्ले भाषा का अनुमान, रास्ते के अनुरोध की जगह से लगाया जाता है.

units

enum (Units)

ज़रूरी नहीं. डिसप्ले फ़ील्ड के लिए माप की इकाइयां बताता है. इसमें NavigationInstruction में instruction फ़ील्ड शामिल है. रास्ते, पैर, कदम की दूरी, और अवधि के लिए इस्तेमाल की जाने वाली माप की इकाइयां इस मान से प्रभावित नहीं होतीं. अगर यह वैल्यू नहीं दी जाती है, तो अनुरोध की जगह से डिसप्ले यूनिट का अनुमान लगाया जाता है.

optimizeWaypointOrder

boolean

अगर OptimizeWaypointOrder 'सही' पर सेट है, तो रूट की कुल लागत को कम करने के लिए, बताए गए इंटरमीडिएट वेपॉइंट को फिर से क्रम में लगाने की कोशिश की जाती है. अगर रास्ते में कोई भी व्यूपॉइंट, व्यूपॉइंट के ज़रिए है, तो अनुरोध पूरा नहीं हो पाएगा. नई क्रम सेटिंग देखने के लिए, ComputeRoutesResponse.Routes.optimized_intermediate_waypoint_index का इस्तेमाल करें. अगर X-Goog-FieldMask हेडर में routes.optimized_intermediate_waypoint_index का अनुरोध नहीं किया गया है, तो अनुरोध पूरा नहीं होगा. अगर optimizeWaypointOrder को 'गलत है' पर सेट किया जाता है, तो ComputeRoutesResponse.optimized_intermediate_waypoint_index खाली होता है.

जवाब का मुख्य भाग

कामयाब रहने पर, जवाब के मुख्य हिस्से में ComputeRoutesResponse का एक इंस्टेंस शामिल किया जाता है.

अनुमति के दायरे

नीचे दिए गए OAuth के लिंक की ज़रूरत हाेती है:

  • https://www.googleapis.com/auth/maps-platform.routespreferred

ज़्यादा जानकारी के लिए, OAuth 2.0 की खास जानकारी देखें.