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 ट्रांसकोडिंग सिंटैक्स का इस्तेमाल करता है.

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

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

जेएसओएन के काेड में दिखाना
{
  "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)

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

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

computeAlternativeRoutes

boolean

इस बात की जानकारी देता है कि रास्ते के साथ-साथ दूसरे रास्तों की गिनती करनी है या नहीं.

routeModifiers

object (RouteModifiers)

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

languageCode

string

ज़रूरी नहीं. BCP-47 भाषा कोड, जैसे "en-US" या "sr-Latn". ज़्यादा जानकारी के लिए, http://www.unicode.org/reports/tr35/#Unicode_locale_identifier देखें. इस्तेमाल की जाने वाली भाषाओं की सूची के लिए भाषा से जुड़ी सहायता देखें. अगर यह वैल्यू नहीं दी जाती है, तो डिसप्ले भाषा का अनुमान उस जगह से लगाया जाता है जहां अनुरोध किया गया था.

units

enum (Units)

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

optimizeWaypointOrder

boolean

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

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

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

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

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

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

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