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/v1alpha: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 की खास जानकारी देखें.