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 इस्तेमाल किया जा सकता है.

routingPreference

enum (RoutingPreference)

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

polylineQuality

enum (PolylineQuality)

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

polylineEncoding

enum (PolylineEncoding)

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

departureTime

string (Timestamp format)

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

आरएफ़सी3339 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: "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" के रूप में जाना जाता है. ज़्यादा जानकारी के लिए, http://www.unicode.org/reports/tr35/#Unicode_locale_identifier देखें. इस्तेमाल की जा सकने वाली भाषाओं की सूची के लिए, भाषा की सुविधा पर जाएं. यह वैल्यू न देने पर, डिसप्ले की भाषा का अनुमान, रास्ते के अनुरोध की जगह के आधार पर लगाया जाता है.

units

enum (Units)

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

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

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

अनुमति पाने के लिंक

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

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

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