दूरी का मैट्रिक्स सेवा (लेगसी)

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर
ध्यान दें: सर्वर-साइड लाइब्रेरी

खास जानकारी

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

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

शुरू करना

Maps JavaScript API में दूरी का मैट्रिक्स बताने वाली सेवा का इस्तेमाल करने से पहले, पक्का करें कि Google Cloud Console में Distance Matrix API (लेगसी) चालू हो. यह उसी प्रोजेक्ट में चालू होना चाहिए जिसे आपने Maps JavaScript API के लिए सेट अप किया है.

चालू किए गए एपीआई की सूची देखने के लिए:

  1. Google Cloud console पर जाएं.
  2. कोई प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वही प्रोजेक्ट चुनें जिसे आपने Maps JavaScript API के लिए सेट अप किया है. इसके बाद, खोलें पर क्लिक करें.
  3. डैशबोर्ड पर मौजूद एपीआई की सूची में, Distance Matrix API (लेगसी) ढूंढें.
  4. अगर आपको सूची में एपीआई दिखता है, तो आपको कोई कार्रवाई करने की ज़रूरत नहीं है. अगर एपीआई सूची में नहीं है, तो उसे https://console.cloud.google.com/apis/library/distance-matrix-backend.googleapis.com पर जाकर चालू करें

कीमत और नीतियां

कीमत

JavaScript दूरी का मैट्रिक्स सेवा के लिए, शुल्क और इस्तेमाल से जुड़ी नीतियों के बारे में जानने के लिए, Distance Matrix API (लेगसी) के लिए, इस्तेमाल और बिलिंग देखें.

ध्यान दें: Distance Matrix सेवा को भेजी जाने वाली हर क्वेरी में, एलिमेंट की संख्या सीमित होती है. एलिमेंट की संख्या, शुरुआत की जगहों की संख्या को मंज़िलों की संख्या से गुणा करके तय की जाती है.

नीतियां

Distance Matrix सेवा का इस्तेमाल, Distance Matrix API (लेगसी) के लिए बताई गई नीतियों के मुताबिक होना चाहिए.

Distance Matrix के अनुरोध

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

google.maps.DistanceMatrixService कंस्ट्रक्टर ऑब्जेक्ट की मदद से, अपने कोड में दूरी का मैट्रिक्स सेवा को ऐक्सेस किया जा सकता है. DistanceMatrixService.getDistanceMatrix() वाला तरीका, Distance Matrix सेवा को अनुरोध भेजता है. इसमें DistanceMatrixRequest ऑब्जेक्ट लिटरल को पास किया जाता है. इसमें शुरुआत की जगह, मंज़िल, और यात्रा का मोड शामिल होता है. साथ ही, जवाब मिलने पर कॉलबैक का तरीका भी शामिल होता है.

var origin1 = new google.maps.LatLng(55.930385, -3.118425);
var origin2 = 'Greenwich, England';
var destinationA = 'Stockholm, Sweden';
var destinationB = new google.maps.LatLng(50.087692, 14.421150);

var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
  {
    origins: [origin1, origin2],
    destinations: [destinationA, destinationB],
    travelMode: 'DRIVING',
    transitOptions: TransitOptions,
    drivingOptions: DrivingOptions,
    unitSystem: UnitSystem,
    avoidHighways: Boolean,
    avoidTolls: Boolean,
  }, callback);

function callback(response, status) {
  // See Parsing the Results for
  // the basics of a callback function.
}

उदाहरण देखें

DistanceMatrixRequest में ये फ़ील्ड शामिल होते हैं:

  • origins (ज़रूरी है) — एक ऐसा कलेक्शन जिसमें एक या उससे ज़्यादा पते की स्ट्रिंग, google.maps.LatLng ऑब्जेक्ट या जगह के ऑब्जेक्ट शामिल हों. इनकी मदद से, दूरी और समय का हिसाब लगाया जाता है.
  • destinations (ज़रूरी है) — एक ऐसा कलेक्शन जिसमें एक या उससे ज़्यादा पतों की स्ट्रिंग, google.maps.LatLng ऑब्जेक्ट या जगह के ऑब्जेक्ट शामिल हों. इनकी मदद से, दूरी और समय का हिसाब लगाया जाता है.
  • travelMode (ज़रूरी नहीं) — निर्देश कैलकुलेट करते समय इस्तेमाल किया जाने वाला परिवहन का मोड. यात्रा के मोड वाला सेक्शन देखें.
  • transitOptions (ज़रूरी नहीं) — ऐसे विकल्प जो सिर्फ़ उन अनुरोधों पर लागू होते हैं जिनमें travelMode की वैल्यू TRANSIT होती है. मान्य वैल्यू के बारे में ट्रांज़िट के विकल्पों वाले सेक्शन में बताया गया है.
  • drivingOptions (ज़रूरी नहीं) उन वैल्यू के बारे में बताता है जो सिर्फ़ उन अनुरोधों पर लागू होती हैं जहां travelMode, DRIVING है. मान्य वैल्यू के बारे में ड्राइविंग के विकल्प सेक्शन में बताया गया है.
  • unitSystem (ज़रूरी नहीं) — दूरी दिखाते समय इस्तेमाल किया जाने वाला यूनिट सिस्टम. ये वैल्यू स्वीकार की जाती हैं:
    • google.maps.UnitSystem.METRIC (डिफ़ॉल्ट)
    • google.maps.UnitSystem.IMPERIAL
  • avoidHighways (ज़रूरी नहीं) — अगर true, तो शुरुआत की जगहों और मंज़िलों के बीच के रास्तों का हिसाब इस तरह लगाया जाएगा कि जहां तक हो सके, हाइवे से बचा जा सके.
  • avoidTolls (ज़रूरी नहीं) — अगर इसकी वैल्यू true है, तो जहां भी संभव हो, टोल वाले रास्तों को छोड़कर अन्य रास्तों का इस्तेमाल करके, पॉइंट के बीच के निर्देशों का हिसाब लगाया जाएगा.

यात्रा के मोड

समय और दूरी का हिसाब लगाते समय, यह तय किया जा सकता है कि यात्रा के किस साधन का इस्तेमाल करना है. फ़िलहाल, यात्रा के लिए इन तरीकों का इस्तेमाल किया जा सकता है:

  • BICYCLING अनुरोध साइकल चलाने के लिए बने रास्तों और पसंदीदा सड़कों के ज़रिए, साइकल सवार के लिए रास्ते के निर्देश (फ़िलहाल, यह सुविधा सिर्फ़ अमेरिका और कनाडा के कुछ शहरों में उपलब्ध है).
  • DRIVING (डिफ़ॉल्ट) इससे पता चलता है कि सड़क नेटवर्क का इस्तेमाल करके, ड्राइविंग के लिए रास्ते के स्टैंडर्ड निर्देश दिए गए हैं.
  • TRANSIT ने बस, मेट्रो वगैरह के रास्तों के ज़रिए दिशा-निर्देश पाने का अनुरोध किया है. यह विकल्प सिर्फ़ तब चुना जा सकता है, जब अनुरोध में एपीआई पासकोड शामिल हो. इस तरह के अनुरोध में उपलब्ध विकल्पों के लिए, बस, मेट्रो वगैरह के विकल्प सेक्शन देखें.
  • WALKING अनुरोधों में, पैदल चलने के लिए बने रास्तों और फ़ुटपाथ (जहां उपलब्ध हों) से पैदल रास्ते की जानकारी मांगी गई.

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

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

दूरी के मैट्रिक्स के अनुरोध के लिए उपलब्ध विकल्प, यात्रा के मोड के हिसाब से अलग-अलग होते हैं. बस, मेट्रो वगैरह के लिए किए गए अनुरोधों में, avoidHighways और avoidTolls विकल्पों को अनदेखा कर दिया जाता है. TransitOptions ऑब्जेक्ट लिटरल की मदद से, बस, मेट्रो वगैरह के लिए खास तौर पर रूटिंग के विकल्प तय किए जा सकते हैं.

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

TransitOptions ऑब्जेक्ट लिटरल में ये फ़ील्ड शामिल होते हैं:

{
  arrivalTime: Date,
  departureTime: Date,
  modes: [transitMode1, transitMode2]
  routingPreference: TransitRoutePreference
}

इन फ़ील्ड के बारे में यहां बताया गया है:

  • arrivalTime (ज़रूरी नहीं) से, Date ऑब्जेक्ट के तौर पर, पहुंचने के लिए अपनी पसंद के समय की जानकारी मिलती है. अगर पहुंचने का समय बताया गया है, तो निकलने के समय को अनदेखा कर दिया जाता है.
  • departureTime (ज़रूरी नहीं) से, Date ऑब्जेक्ट के तौर पर, रवानगी का पसंदीदा समय तय किया जाता है. अगर arrivalTime की वैल्यू दी गई है, तो departureTime को अनदेखा कर दिया जाएगा. अगर departureTime या arrivalTime के लिए कोई वैल्यू नहीं दी गई है, तो डिफ़ॉल्ट रूप से मौजूदा समय को ही वैल्यू मान लिया जाता है.
  • modes (ज़रूरी नहीं) एक कलेक्शन है, जिसमें एक या उससे ज़्यादा TransitMode ऑब्जेक्ट लिटरल होते हैं. इस फ़ील्ड को सिर्फ़ तब शामिल किया जा सकता है, जब अनुरोध में एपीआई पासकोड शामिल हो. हर TransitMode, यात्रा के पसंदीदा साधन के बारे में बताता है. इन वैल्यू का इस्तेमाल किया जा सकता है:
    • BUS से पता चलता है कि तय किए गए रास्ते पर बस से यात्रा करने को प्राथमिकता दी जानी चाहिए.
    • RAIL से पता चलता है कि तय किए गए रास्ते में ट्रेन, ट्राम, लाइट रेल, और सबवे से यात्रा करने को प्राथमिकता दी जानी चाहिए.
    • SUBWAY से पता चलता है कि तय किए गए रास्ते में, मेट्रो से यात्रा करने को प्राथमिकता दी जानी चाहिए.
    • TRAIN से पता चलता है कि तय किए गए रास्ते में, ट्रेन से यात्रा करने को प्राथमिकता दी जानी चाहिए.
    • TRAM से पता चलता है कि तय किए गए रास्ते में, ट्राम और लाइट रेल से यात्रा करने को प्राथमिकता दी जानी चाहिए.
  • routingPreference (ज़रूरी नहीं) से, ट्रांज़िट रूट के लिए प्राथमिकताएं तय की जाती हैं. इस विकल्प का इस्तेमाल करके, एपीआई से चुने गए डिफ़ॉल्ट सबसे अच्छे रास्ते को स्वीकार करने के बजाय, दिखाए गए विकल्पों को अपनी पसंद के हिसाब से बदला जा सकता है. इस फ़ील्ड की जानकारी सिर्फ़ तब दी जा सकती है, जब अनुरोध में एपीआई पासकोड शामिल हो. इन वैल्यू का इस्तेमाल किया जा सकता है:
    • FEWER_TRANSFERS इससे पता चलता है कि कैलकुलेट किए गए रास्ते में, कम से कम वाहन बदलने की ज़रूरत पड़े.
    • LESS_WALKING इससे पता चलता है कि तय किए गए रास्ते में, पैदल चलने की दूरी कम होनी चाहिए.

ड्राइविंग के विकल्प

drivingOptions ऑब्जेक्ट का इस्तेमाल करके, रवाना होने का समय तय करें. इससे, ट्रैफ़िक की संभावित स्थितियों के हिसाब से, आपकी मंज़िल तक पहुंचने का सबसे अच्छा रास्ता तय किया जा सकता है. यह भी तय किया जा सकता है कि ट्रैफ़िक में लगने वाले समय का अनुमान, ट्रैफ़िक के पुराने डेटा और लाइव ट्रैफ़िक के आधार पर सबसे खराब, सबसे अच्छा या सबसे सटीक हो.

drivingOptions ऑब्जेक्ट में ये फ़ील्ड शामिल होते हैं:

{
  departureTime: Date,
  trafficModel: TrafficModel
}

इन फ़ील्ड के बारे में यहां बताया गया है:

  • departureTime (drivingOptions ऑब्जेक्ट लिटरल के मान्य होने के लिए ज़रूरी है) रवानगी के लिए तय किए गए समय को Date ऑब्जेक्ट के तौर पर दिखाता है. वैल्यू को मौजूदा समय या आने वाले समय पर सेट करना ज़रूरी है. यह बीते हुए समय की नहीं हो सकती. (एपीआई, सभी तारीखों को यूटीसी में बदल देता है, ताकि सभी टाइम ज़ोन में एक जैसा डेटा मैनेज किया जा सके.) अगर अनुरोध में departureTime को शामिल किया जाता है, तो एपीआई उस समय ट्रैफ़िक की अनुमानित स्थितियों के हिसाब से सबसे अच्छा रास्ता दिखाता है. साथ ही, जवाब में ट्रैफ़िक में लगने वाले अनुमानित समय (duration_in_traffic) को शामिल करता है. अगर आपने रवाना होने का समय नहीं बताया है (यानी कि अनुरोध में drivingOptions शामिल नहीं है), तो आपको ट्रैफ़िक का हाल को ध्यान में रखे बिना, आम तौर पर अच्छा रास्ता दिखाया जाता है.
  • trafficModel (ज़रूरी नहीं) इससे यह तय होता है कि ट्रैफ़िक में लगने वाले समय का हिसाब लगाते समय, किन बातों का ध्यान रखना है. इस सेटिंग का असर, जवाब में duration_in_traffic फ़ील्ड में मिलने वाली वैल्यू पर पड़ता है. इस फ़ील्ड में, पुराने औसत के आधार पर ट्रैफ़िक में लगने वाले अनुमानित समय की जानकारी होती है. डिफ़ॉल्ट रूप से, यह best_guess पर सेट होता है. इन वैल्यू का इस्तेमाल किया जा सकता है:
    • bestguess (डिफ़ॉल्ट) से पता चलता है कि लौटाया गया duration_in_traffic, यात्रा में लगने वाले समय का सबसे सटीक अनुमान होना चाहिए. यह अनुमान, ट्रैफ़िक के पुराने डेटा और लाइव ट्रैफ़िक की जानकारी के आधार पर लगाया जाता है. departureTime के समय के करीब होने पर, लाइव ट्रैफ़िक की जानकारी ज़्यादा अहम हो जाती है.
    • pessimistic से पता चलता है कि ज़्यादातर दिनों में, वापस किया गया duration_in_traffic, यात्रा में लगने वाले असल समय से ज़्यादा होना चाहिए. हालांकि, कभी-कभी ट्रैफ़िक की स्थिति खराब होने पर, यह वैल्यू ज़्यादा हो सकती है.
    • optimistic से पता चलता है कि ज़्यादातर दिनों में, यात्रा में लगने वाले असल समय के मुकाबले, duration_in_traffic की वैल्यू कम होनी चाहिए. हालांकि, कभी-कभी ट्रैफ़िक का हाल अच्छा होने पर, यात्रा में लगने वाला समय इस वैल्यू से कम हो सकता है.

यहां ड्राइविंग रूट के लिए DistanceMatrixRequest का एक सैंपल दिया गया है. इसमें निकलने का समय और ट्रैफ़िक मॉडल शामिल है:

{
  origins: [{lat: 55.93, lng: -3.118}, 'Greenwich, England'],
  destinations: ['Stockholm, Sweden', {lat: 50.087, lng: 14.421}],
  travelMode: 'DRIVING',
  drivingOptions: {
    departureTime: new Date(Date.now() + N),  // for the time N milliseconds from now.
    trafficModel: 'optimistic'
  }
}

Distance Matrix API से मिलने वाले जवाब

दूरी के मैट्रिक्स की सेवा को किया गया कॉल सफल होने पर, DistanceMatrixResponse ऑब्जेक्ट और DistanceMatrixStatus ऑब्जेक्ट मिलता है. इन्हें उस कॉलबैक फ़ंक्शन को पास किया जाता है जिसे आपने अनुरोध में बताया है.

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

{
  "originAddresses": [ "Greenwich, Greater London, UK", "13 Great Carleton Square, Edinburgh, City of Edinburgh EH16 4, UK" ],
  "destinationAddresses": [ "Stockholm County, Sweden", "Dlouhá 609/2, 110 00 Praha-Staré Město, Česká republika" ],
  "rows": [ {
    "elements": [ {
      "status": "OK",
      "duration": {
        "value": 70778,
        "text": "19 hours 40 mins"
      },
      "distance": {
        "value": 1887508,
        "text": "1173 mi"
      }
    }, {
      "status": "OK",
      "duration": {
        "value": 44476,
        "text": "12 hours 21 mins"
      },
      "distance": {
        "value": 1262780,
        "text": "785 mi"
      }
    } ]
  }, {
    "elements": [ {
      "status": "OK",
      "duration": {
        "value": 96000,
        "text": "1 day 3 hours"
      },
      "distance": {
        "value": 2566737,
        "text": "1595 mi"
      }
    }, {
      "status": "OK",
      "duration": {
        "value": 69698,
        "text": "19 hours 22 mins"
      },
      "distance": {
        "value": 1942009,
        "text": "1207 mi"
      }
    } ]
  } ]
}

Distance Matrix के नतीजे

जवाब में इस्तेमाल किए जा सकने वाले फ़ील्ड के बारे में यहां बताया गया है.

  • originAddresses एक कलेक्शन है, जिसमें वे जगहें शामिल हैं जिन्हें दूरी के मैट्रिक्स के अनुरोध के origins फ़ील्ड में पास किया गया है. पते उसी तरह दिखाए जाते हैं जिस तरह उन्हें जियोकोडर ने फ़ॉर्मैट किया है.
  • destinationAddresses एक अरे है, जिसमें destinations फ़ील्ड में पास की गई जगहों की जानकारी होती है. यह जानकारी, जियोकोडर से मिले फ़ॉर्मैट में होती है.
  • rows, DistanceMatrixResponseRow ऑब्जेक्ट का एक कलेक्शन है. इसमें हर लाइन, किसी ऑरिजिन से जुड़ी होती है.
  • elements, rows के चाइल्ड एलिमेंट हैं. साथ ही, ये हर डेस्टिनेशन के साथ पंक्ति के ऑरिजिन के जोड़े से जुड़े होते हैं. इनमें हर ओरिजिन/डेस्टिनेशन पेयर के लिए, स्टेटस, अवधि, दूरी, और किराये की जानकारी (अगर उपलब्ध हो) शामिल होती है.
  • हर element में ये फ़ील्ड शामिल होते हैं:
    • status: संभावित स्टेटस कोड की सूची के लिए, स्टेटस कोड देखें.
    • duration: इस रास्ते से यात्रा करने में लगने वाला समय. इसे सेकंड (value फ़ील्ड) और text के तौर पर दिखाया जाता है. टेक्स्ट वैल्यू को अनुरोध में बताई गई unitSystem के हिसाब से फ़ॉर्मैट किया जाता है. अगर कोई प्राथमिकता नहीं दी गई है, तो मेट्रिक के हिसाब से फ़ॉर्मैट किया जाता है.
    • duration_in_traffic: ट्रैफ़िक की मौजूदा स्थिति को ध्यान में रखते हुए, इस रास्ते से यात्रा करने में लगने वाला समय. इसे सेकंड (value फ़ील्ड) और text के तौर पर दिखाया जाता है. टेक्स्ट वैल्यू को अनुरोध में बताई गई unitSystem के हिसाब से फ़ॉर्मैट किया जाता है. अगर कोई प्राथमिकता नहीं दी गई है, तो मेट्रिक के हिसाब से फ़ॉर्मैट किया जाता है. duration_in_traffic सिर्फ़ तब दिखता है, जब ट्रैफ़िक डेटा उपलब्ध हो, mode को driving पर सेट किया गया हो, और अनुरोध में distanceMatrixOptions फ़ील्ड के हिस्से के तौर पर departureTime को शामिल किया गया हो.
    • distance: इस रास्ते की कुल दूरी, मीटर (value) और text में दिखाई जाती है. टेक्स्ट वैल्यू को अनुरोध में बताए गए unitSystem के हिसाब से फ़ॉर्मैट किया जाता है. अगर कोई प्राथमिकता नहीं दी गई है, तो मेट्रिक के हिसाब से फ़ॉर्मैट किया जाता है.
    • fare: इसमें इस रास्ते का कुल किराया (यानी कि टिकट की कुल कीमत) शामिल होता है. यह प्रॉपर्टी सिर्फ़ ट्रांज़िट के अनुरोधों के लिए और सिर्फ़ उन ट्रांज़िट सेवा देने वाली कंपनियों के लिए दिखाई जाती है जिनके लिए किराये की जानकारी उपलब्ध होती है. इस जानकारी में शामिल है:
      • currency: ISO 4217 करंसी कोड, जो उस मुद्रा को दिखाता है जिसमें रकम को दिखाया गया है.
      • value: ऊपर बताई गई मुद्रा में, किराये की कुल रकम.

स्टेटस कोड

Distance Matrix के रिस्पॉन्स में, पूरे रिस्पॉन्स के लिए स्टेटस कोड के साथ-साथ हर एलिमेंट का स्टेटस भी शामिल होता है.

रिस्पॉन्स स्टेटस कोड

DistanceMatrixResponse पर लागू होने वाले स्टेटस कोड, DistanceMatrixStatus ऑब्जेक्ट में पास किए जाते हैं. इनमें ये शामिल हैं:

  • OK — अनुरोध मान्य है. यह स्टेटस तब भी दिख सकता है, जब किसी भी शुरुआती जगह और मंज़िल के बीच कोई रास्ता न मिला हो. एलिमेंट-लेवल पर स्टेटस की जानकारी के लिए, एलिमेंट के स्टेटस कोड देखें.
  • INVALID_REQUEST — किया गया अनुरोध अमान्य था. ऐसा अक्सर ज़रूरी फ़ील्ड मौजूद न होने की वजह से होता है. ऊपर दी गई, इस्तेमाल किए जा सकने वाले फ़ील्ड की सूची देखें.
  • MAX_ELEMENTS_EXCEEDED — ऑरिजिन और डेस्टिनेशन का प्रॉडक्ट, हर क्वेरी की सीमा से ज़्यादा है.
  • MAX_DIMENSIONS_EXCEEDED — आपके अनुरोध में 25 से ज़्यादा ऑरिजिन या 25 से ज़्यादा डेस्टिनेशन शामिल थे.
  • OVER_QUERY_LIMIT — आपके ऐप्लिकेशन ने तय समयावधि में बहुत ज़्यादा एलिमेंट का अनुरोध किया है. कुछ समय बाद फिर से कोशिश करने पर, अनुरोध पूरा हो जाना चाहिए.
  • REQUEST_DENIED — सेवा ने आपके वेब पेज को Distance Matrix सेवा का इस्तेमाल करने की अनुमति नहीं दी.
  • UNKNOWN_ERROR — सर्वर की गड़बड़ी की वजह से, दूरी के मैट्रिक्स के अनुरोध को प्रोसेस नहीं किया जा सका. फिर से कोशिश करने पर, अनुरोध पूरा हो सकता है.

एलिमेंट के स्टेटस कोड

यहां दिए गए स्टेटस कोड, खास DistanceMatrixElement ऑब्जेक्ट पर लागू होते हैं:

  • NOT_FOUND — इस पेयरिंग के ऑरिजिन और/या डेस्टिनेशन को जियोकोड नहीं किया जा सका.
  • OK — जवाब में मान्य नतीजा शामिल है.
  • ZERO_RESULTS — यात्रा शुरू करने की जगह और मंज़िल के बीच कोई रास्ता नहीं मिला.

नतीजों को पार्स करना

DistanceMatrixResponse ऑब्जेक्ट में, अनुरोध में पास किए गए हर ऑरिजिन के लिए एक row होता है. हर पंक्ति में, उस ऑरिजिन के साथ दिए गए डेस्टिनेशन के हर जोड़े के लिए एक element फ़ील्ड होता है.

function callback(response, status) {
  if (status == 'OK') {
    var origins = response.originAddresses;
    var destinations = response.destinationAddresses;

    for (var i = 0; i < origins.length; i++) {
      var results = response.rows[i].elements;
      for (var j = 0; j < results.length; j++) {
        var element = results[j];
        var distance = element.distance.text;
        var duration = element.duration.text;
        var from = origins[i];
        var to = destinations[j];
      }
    }
  }
}