Method: computeRouteMatrix

ऑरिजिन और डेस्टिनेशन की सूची लेता है. साथ ही, ऐसी स्ट्रीम दिखाता है जिसमें ऑरिजिन और डेस्टिनेशन के हर कॉम्बिनेशन के लिए रूट की जानकारी होती है.

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

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

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

यह ज़रूरी है कि आप status को अपने फ़ील्ड मास्क में शामिल करें, क्योंकि ऐसा न करने पर सभी मैसेज ठीक दिखेंगे. Google, वाइल्डकार्ड (*) रिस्पॉन्स फ़ील्ड मास्क का इस्तेमाल करने से मना करता है, क्योंकि:

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

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

POST https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix

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

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

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

जेएसओएन के काेड में दिखाना
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string,
  "arrivalTime": string,
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
फ़ील्ड
origins[]

object (RouteMatrixOrigin)

ज़रूरी है. ऑरिजिन का कलेक्शन, जो रिस्पॉन्स मैट्रिक्स की लाइन तय करता है. ऑरिजिन और डेस्टिनेशन के एलिमेंट पर, साइज़ से जुड़ी कई पाबंदियां लागू होती हैं:

  • ऑरिजिन की संख्या + placeId या address के तौर पर बताए गए डेस्टिनेशन का योग 50 से ज़्यादा नहीं होना चाहिए.
  • ऑरिजिन की संख्या × डेस्टिनेशन की संख्या, किसी भी स्थिति में 625 से ज़्यादा नहीं होनी चाहिए.
  • अगर रूटिंग वरीयता TRAFFIC_AWARE_OPTIMAL पर सेट है, तो ऑरिजिन की संख्या × डेस्टिनेशन की संख्या का प्रॉडक्ट 100 से ज़्यादा नहीं होना चाहिए.
  • अगर TravelMode को TRANSIT पर सेट किया गया है, तो ऑरिजिन की संख्या × डेस्टिनेशन की संख्या का प्रॉडक्ट, 100 से ज़्यादा नहीं होना चाहिए.
destinations[]

object (RouteMatrixDestination)

ज़रूरी है. डेस्टिनेशन की वह कैटगरी, जो रिस्पॉन्स मैट्रिक्स के कॉलम तय करती है.

travelMode

enum (RouteTravelMode)

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

routingPreference

enum (RoutingPreference)

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

departureTime

string (Timestamp format)

ज़रूरी नहीं. रवानगी का समय. अगर यह वैल्यू सेट नहीं की जाती है, तो डिफ़ॉल्ट रूप से यह वैल्यू, अनुरोध किए जाने के समय से मेल खाएगी. ध्यान दें: departureTime सिर्फ़ तब तय किया जा सकता है, जब RouteTravelMode को TRANSIT पर सेट किया गया हो.

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

arrivalTime

string (Timestamp format)

ज़रूरी नहीं. पहुंचने का समय. ध्यान दें: इसे सिर्फ़ तब सेट किया जा सकता है, जब RouteTravelMode को TRANSIT पर सेट किया जाए. आपके पास departureTime या arrivalTime में से किसी एक का इस्तेमाल करने का विकल्प होता है, दोनों का नहीं.

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

languageCode

string

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

regionCode

string

ज़रूरी नहीं. क्षेत्र का कोड, जिसे ccTLD ("टॉप लेवल डोमेन") दो वर्ण की वैल्यू के तौर पर दिखाया जाता है. ज़्यादा जानकारी के लिए, देश कोड टॉप लेवल डोमेन देखें.

units

enum (Units)

ज़रूरी नहीं. डिसप्ले फ़ील्ड की माप की इकाइयों के बारे में बताता है.

extraComputations[]

enum (ExtraComputation)

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

trafficModel

enum (TrafficModel)

ज़रूरी नहीं. ट्रैफ़िक में समय का हिसाब लगाते समय इस्तेमाल किए जाने वाले अनुमानों को दिखाता है. यह सेटिंग, RouteMatrixElement के कुल समय फ़ील्ड में दिखाई गई वैल्यू पर असर डालती है. इसमें, पुराने औसत के आधार पर ट्रैफ़िक में लगने वाला अनुमानित समय शामिल होता है. RoutingPreference से TRAFFIC_AWARE_OPTIMAL और RouteTravelMode से DRIVE. अगर ट्रैफ़िक का अनुरोध किया गया है और TrafficModel नहीं दिया गया है, तो डिफ़ॉल्ट वैल्यू BEST_GUESS होती है.

transitPreferences

object (TransitPreferences)

ज़रूरी नहीं. उन प्राथमिकताओं के बारे में बताता है जो TRANSIT रास्तों के लिए लौटाए गए रास्ते पर असर डालती हैं. ध्यान दें: transitPreferences सिर्फ़ तब सेट किया जा सकता है, जब RouteTravelMode को TRANSIT पर सेट किया गया हो.

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

इसमें रूट की वह जानकारी होती है जिसे v2.computeRouteMatrix API में ऑरिजिन/डेस्टिनेशन पेयर के लिए कैलकुलेट किया गया होता है. इस प्रोटो को क्लाइंट पर स्ट्रीम किया जा सकता है.

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

जेएसओएन के काेड में दिखाना
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "localizedValues": {
    object (LocalizedValues)
  },
  "originIndex": integer,
  "destinationIndex": integer
}
फ़ील्ड
status

object (Status)

इस एलिमेंट के लिए गड़बड़ी का स्टेटस कोड.

condition

enum (RouteMatrixElementCondition)

यह बताता है कि रास्ता मिला या नहीं. स्थिति स्वतंत्र है.

distanceMeters

integer

रास्ते की दूरी मीटर में.

duration

string (Duration format)

मार्ग को नेविगेट करने में लगने वाला समय. अगर routingPreference को TRAFFIC_UNAWARE पर सेट किया जाता है, तो यह वैल्यू staticDuration के बराबर होगी. अगर routingPreference को TRAFFIC_AWARE या TRAFFIC_AWARE_OPTIMAL पर सेट किया जाता है, तो इस वैल्यू को ट्रैफ़िक की शर्तों को ध्यान में रखकर कैलकुलेट किया जाता है.

सेकंड में दी गई अवधि, जिसमें नौ भिन्नांक हो सकते हैं. साथ ही, यह 's' पर खत्म होता है. उदाहरण: "3.5s".

staticDuration

string (Duration format)

ट्रैफ़िक की स्थितियों को ध्यान में रखे बिना रास्ते की यात्रा की अवधि.

सेकंड में दी गई अवधि, जिसमें नौ भिन्नांक हो सकते हैं. साथ ही, यह 's' पर खत्म होता है. उदाहरण: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

रास्ते के बारे में ज़्यादा जानकारी. उदाहरण के लिए: पाबंदी और टोल की जानकारी

fallbackInfo

object (FallbackInfo)

कुछ मामलों में, जब सर्वर इस खास ऑरिजिन/डेस्टिनेशन जोड़े के लिए दी गई प्राथमिकताओं के हिसाब से रूट का पता नहीं लगा पाता, तो हो सकता है कि सर्वर कंप्यूटेशन के किसी दूसरे मोड का इस्तेमाल करे. फ़ॉलबैक मोड का इस्तेमाल करने पर, इस फ़ील्ड में फ़ॉलबैक के रिस्पॉन्स के बारे में पूरी जानकारी मौजूद होती है. ऐसा न करने पर, यह फ़ील्ड सेट नहीं होता है.

localizedValues

object (LocalizedValues)

RouteMatrixElement की प्रॉपर्टी का टेक्स्ट प्रज़ेंटेशन.

originIndex

integer

अनुरोध में शामिल ऑरिजिन का शून्य पर आधारित इंडेक्स.

destinationIndex

integer

अनुरोध में शामिल डेस्टिनेशन का शून्य-आधारित इंडेक्स.

RouteMatrixOrigin

ComputeRouteMatrixRequest के लिए एक ऑरिजिन

जेएसओएन के काेड में दिखाना
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
फ़ील्ड
waypoint

object (Waypoint)

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

routeModifiers

object (RouteModifiers)

ज़रूरी नहीं. हर उस रूट के लिए मॉडिफ़ायर जो इसे ऑरिजिन के तौर पर ले जाता है

RouteMatrixDestination

ComputeRouteMatrixRequest के लिए एक डेस्टिनेशन

जेएसओएन के काेड में दिखाना
{
  "waypoint": {
    object (Waypoint)
  }
}
फ़ील्ड
waypoint

object (Waypoint)

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

ExtraComputation

अनुरोध पूरा करते समय की जाने वाली अतिरिक्त गणना.

Enums
EXTRA_COMPUTATION_UNSPECIFIED इस्तेमाल नहीं किया गया. इस वैल्यू वाले अनुरोध स्वीकार नहीं किए जाएंगे.
TOLLS मैट्रिक्स एलिमेंट के लिए टोल की जानकारी.

RouteMatrixElementCondition

लौटाए जा रहे रास्ते की स्थिति.

Enums
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED सिर्फ़ तब इस्तेमाल किया जाता है, जब एलिमेंट का status सही न हो.
ROUTE_EXISTS एक रूट मिला और एलिमेंट के लिए उससे जुड़ी जानकारी भरी गई.
ROUTE_NOT_FOUND कोई रास्ता नहीं मिला. रास्ते की जानकारी वाले फ़ील्ड, जैसे कि distanceMeters या duration, एलिमेंट में नहीं भरे जाएंगे.

LocalizedValues

कुछ प्रॉपर्टी को टेक्स्ट के ज़रिए दिखाएं.

जेएसओएन के काेड में दिखाना
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
फ़ील्ड
distance

object (LocalizedText)

यात्रा की दूरी, टेक्स्ट के रूप में दिखाई गई है.

duration

object (LocalizedText)

ट्रैफ़िक की स्थितियों को ध्यान में रखते हुए, अवधि को टेक्स्ट फ़ॉर्मैट में दिखाया गया है. ध्यान दें: अगर ट्रैफ़िक की जानकारी के लिए अनुरोध नहीं किया गया है, तो यह वैल्यू staticDuration के जैसी ही होगी.

staticDuration

object (LocalizedText)

ट्रैफ़िक की स्थितियों पर ध्यान दिए बिना, अवधि को टेक्स्ट रूप में दिखाया गया है.

transitFare

object (LocalizedText)

बस, मेट्रो वगैरह का किराया टेक्स्ट फ़ॉर्म में दिखाया गया है.