Method: computeCustomRoutes

टर्मिनल और इंटरमीडिएट वेपॉइंट के सेट और रूट मकसद दिए जाने पर, रूट मकसद के लिए सबसे अच्छे रूट का पता चलता है. यह सबसे तेज़ रास्ते और सबसे छोटे रास्ते को रेफ़रंस रास्ते के तौर पर भी दिखाता है.

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

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

  • सभी उपलब्ध फ़ील्ड का फ़ील्ड मास्क (मैन्युअल जांच के लिए): X-Goog-FieldMask: *
  • रास्ते की दूरी, कुल समय, टोकन, और टोल की जानकारी का फ़ील्ड मास्क: X-Goog-FieldMask: routes.route.distanceMeters,routes.route.duration,routes.token,routes.route.travelAdvisory.tollInfo

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

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

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

POST https://routespreferred.googleapis.com/v1alpha:computeCustomRoutes

यूआरएल में 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,
  "routeModifiers": {
    object (RouteModifiers)
  },
  "routeObjective": {
    object (RouteObjective)
  },
  "languageCode": string,
  "units": enum (Units)
}
फ़ील्ड
origin

object (Waypoint)

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

destination

object (Waypoint)

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

intermediates[]

object (Waypoint)

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

travelMode

enum (RouteTravelMode)

ज़रूरी नहीं. यात्रा के साधन के बारे में बताता है. सिर्फ़ DRIVE और 'TWO_WHEELER' का इस्तेमाल किया जा सकता है.

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".

routeModifiers

object (RouteModifiers)

ज़रूरी नहीं. ऐसी शर्तों का सेट जो रास्तों का हिसाब लगाने के तरीके पर असर डालती हैं.

routeObjective

object (RouteObjective)

ज़रूरी है. ऑप्टिमाइज़ करने के लिए कोई रूट मकसद.

languageCode

string

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

units

enum (Units)

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

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

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

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

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

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

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