रास्ता मैट्रिक्स पाएं

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

Routes API का इस्तेमाल करके, कई शुरुआती जगहों और मंज़िलों के लिए, किसी रास्ते की दूरी और उसमें लगने वाले समय का हिसाब लगाया जा सकता है. इसके लिए, computeRouteMatrix तरीके (REST) या स्ट्रीमिंग ComputeRouteMatrix तरीके (gRPC) को कॉल करें.

शुरुआती जगहों और मंज़िलों की सूची देने पर, यह तरीका हर शुरुआती जगह से शुरू होने वाले और हर मंज़िल पर खत्म होने वाले रास्ते की दूरी और उसमें लगने वाले समय का हिसाब लगाता है.

बस, मेट्रो वगैरह के रास्ते का मैट्रिक्स पाना

ट्रांज़िट के लिए भी रूट मैट्रिक्स को कंप्यूट किया जा सकता है. उदाहरण के लिए, बस, मेट्रो वगैरह के लिए रूट मैट्रिक्स पाना देखें.

अनुरोध करने की सीमाएं

Compute Route Matrix के तरीके, पते या प्लेस आईडी का इस्तेमाल करके वेपॉइंट के लिए और एलिमेंट के लिए, अनुरोध की ये सीमाएं लागू करते हैं. एलिमेंट, रूट मैट्रिक्स में हर ऑरिजिन और डेस्टिनेशन के बीच के रूट होते हैं. इसलिए, एलिमेंट की संख्या, ऑरिजिन की संख्या गुणा डेस्टिनेशन की संख्या होती है. उदाहरण के लिए, अगर आपके पास 10 ऑरिजिन और 10 डेस्टिनेशन हैं, तो आपके पास 100 एलिमेंट हैं:

  • TRANSIT रूट के अलावा, अन्य रूट के लिए एलिमेंट की संख्या 625 से ज़्यादा नहीं हो सकती.

  • अगर आपने TRANSIT रूट तय किया है, तो एलिमेंट की संख्या 100 से ज़्यादा नहीं हो सकती.

  • अगर आपने TRAFFIC_AWARE_OPTIMAL की वैल्यू दी है, तो एलिमेंट की संख्या 100 से ज़्यादा नहीं हो सकती. TRAFFIC_AWARE_OPTIMAL के बारे में ज़्यादा जानकारी के लिए, ट्रैफ़िक डेटा को शामिल करने का तरीका और उसे शामिल करना है या नहीं, यह तय करना लेख पढ़ें.

  • अगर पते या जगह के आईडी का इस्तेमाल करके, शुरुआत या मंज़िल की जगहें तय की जाती हैं, तो इस तरीके से कुल 50 जगहें तय की जा सकती हैं.

जवाब में गड़बड़ियां

Compute Route Matrix के तरीकों की एक सुविधा यह है कि गड़बड़ियां, पूरे रिस्पॉन्स या रिस्पॉन्स के अलग-अलग एलिमेंट के लिए दिख सकती हैं. उदाहरण के लिए, अगर अनुरोध गलत तरीके से बनाया गया है, तो पूरे जवाब में गड़बड़ी होगी. जैसे, इसमें कोई ऑरिजिन नहीं है.

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

gRPC स्ट्रीम के नतीजे

ComputeRouteMatrix gRPC तरीके में, शुरुआत की जगहों और मंज़िलों की सूची दी जाती है. इसके बाद, यह एक स्ट्रीम दिखाता है. इसमें शुरुआत की जगह और मंज़िल के हर कॉम्बिनेशन के लिए, रास्ते की जानकारी होती है. नतीजे स्ट्रीम के तौर पर दिखाए जाते हैं. इसलिए, नतीजों को प्रोसेस करने से पहले, आपको रास्ते के सभी संभावित कॉम्बिनेशन का हिसाब लगाने तक इंतज़ार करने की ज़रूरत नहीं है.

इस बात की कोई गारंटी नहीं है कि स्ट्रीम से मिलने वाले एलिमेंट किसी क्रम में दिखाए जाएंगे. इसलिए, हर रिस्पॉन्स एलिमेंट में एक origin_index और एक destination_index शामिल होता है. अनुरोध में बताई गई यात्रा शुरू करने की जगहों और मंज़िलों के लिए, किसी एलिमेंट के लिए यात्रा शुरू करने की जगह, origins[origin_index] के बराबर होती है और मंज़िल, destinations[destination_index] के बराबर होती है. ये ऐरे, ज़ीरो-इंडेक्स होते हैं. मूल और डेस्टिनेशन सूची के क्रम को सेव करना ज़रूरी है.

Compute Route Matrix के उदाहरण

रूट मैट्रिक्स का हिसाब लगाने के लिए, एचटीटीपी अनुरोध में computeRouteMatrix तरीके का इस्तेमाल करें.

एचटीटीपी का उदाहरण

यहां दिए गए उदाहरण में, computeRouteMatrix एचटीटीपी अनुरोध दिखाया गया है. इस उदाहरण में, आपने:

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

    अरे में, पहला एलिमेंट इंडेक्स 0 पर होता है, दूसरा इंडेक्स 1 पर होता है, और इसी तरह आगे भी.

  • रिस्पॉन्स फ़ील्ड मास्क शामिल करें, ताकि यह तय किया जा सके कि रिस्पॉन्स (REST) या ComputeRoutesResponse (gRPC) के कौनसे फ़ील्ड दिखाने हैं. इस उदाहरण में, हर रास्ते के लिए originIndex, destinationIndex, duration, distanceMeters, status, और condition दिखाने के लिए, अनुरोध को कॉन्फ़िगर करें. ज़्यादा जानकारी के लिए, वापस करने के लिए फ़ील्ड चुनें देखें.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

जवाब में, सफ़र शुरू करने की जगह और मंज़िल के सभी वेपॉइंट के कॉम्बिनेशन के लिए, चार संभावित रास्ते शामिल हैं.

जवाब में हर रास्ते की पहचान करने के लिए, originIndex और destinationIndex रिस्पॉन्स फ़ील्ड का इस्तेमाल करें. उदाहरण के लिए, जवाब में originIndex की वैल्यू 1 होने का मतलब है कि रूट का हिसाब, अनुरोध में मौजूद origins ऐरे के इंडेक्स 1 पर मौजूद वेपॉइंट से लगाया गया है.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

gRPC के उदाहरण

gRPC अनुरोधों के उदाहरण देखने के लिए, gRPC अनुरोध का उदाहरण पेज पर जाएं. उस पेज पर मौजूद Java का उदाहरण, Compute Routes और Compute Route Matrix, दोनों को कॉल करता है.