Method: computeRouteMatrix

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

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

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

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

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

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

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

POST https://routespreferred.googleapis.com/v1:computeRouteMatrix

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

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

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

जेएसओएन के काेड में दिखाना
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string
}
फ़ील्ड
origins[]

object (RouteMatrixOrigin)

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

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

object (RouteMatrixDestination)

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

travelMode

enum (RouteTravelMode)

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

routingPreference

enum (RoutingPreference)

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

departureTime

string (Timestamp format)

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

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

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

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

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

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

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

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