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

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

अनुरोध के मुख्य भाग में, नीचे दिए गए स्ट्रक्चर वाला डेटा होता है:

JSON के काेड में दिखाना
{
  "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 से ज़्यादा नहीं होना चाहिए.
  • अगर routingPreference को TRAFFIC_AWARE_OPTIMAL पर सेट किया गया है, तो ऑरिजिन की संख्या × डेस्टिनेशन की संख्या का प्रॉडक्ट 100 से ज़्यादा नहीं होना चाहिए.
  • अगर travelMode को TRANSIT पर सेट किया गया है, तो ऑरिजिन की संख्या × डेस्टिनेशन की संख्या का प्रॉडक्ट 100 से ज़्यादा नहीं होना चाहिए.
destinations[]

object (RouteMatrixDestination)

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

travelMode

enum (RouteTravelMode)

ज़रूरी नहीं. यात्रा के साधन के बारे में बताता है.

routingPreference

enum (RoutingPreference)

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

departureTime

string (Timestamp format)

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

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

arrivalTime

string (Timestamp format)

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

आरएफ़सी3339 यूटीसी के "Zulu" फ़ॉर्मैट में एक टाइमस्टैंप, नैनोसेकंड रिज़ॉल्यूशन और नौ दशमलव अंकों के साथ. उदाहरण के लिए: "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 रूट के लिए दिखाए गए रास्ते पर पड़ता है. ध्यान दें: RouteTravelMode को TRANSIT पर सेट करने पर ही transitPreferences की जानकारी दी जा सकती है.

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

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

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

JSON के काेड में दिखाना
{
  "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 के लिए एक सोर्स

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

object (Waypoint)

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

routeModifiers

object (RouteModifiers)

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

RouteMatrixDestination

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

JSON के काेड में दिखाना
{
  "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

कुछ प्रॉपर्टी के टेक्स्ट वर्शन.

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

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