दूरी के मैट्रिक्स की सेवा

खास जानकारी

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

यह सेवा रास्ते की पूरी जानकारी नहीं देती. पॉलीलाइन और टेक्स्ट वाले दिशा-निर्देशों के साथ-साथ रास्ते की जानकारी पाने के लिए, दिशा-निर्देश सेवा को अपनी पसंद के एक ऑरिजिन और डेस्टिनेशन को पास किया जा सकता है.

प्रारंभ करना

Maps JavaScript API में डिस्टेंस मैट्रिक्स सेवा का इस्तेमाल करने से पहले, यह पक्का कर लें कि Google Cloud Console में डिस्टेंस मैट्रिक्स एपीआई चालू हो. यह सुविधा उसी प्रोजेक्ट के लिए चालू होती है जिसे आपने Maps JavaScript API के लिए सेट अप किया था.

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

  1. Google Cloud Console पर जाएं.
  2. प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वह प्रोजेक्ट चुनें जिसे आपने Maps JavaScript API के लिए सेट अप किया है. इसके बाद, खोलें पर क्लिक करें.
  3. डैशबोर्ड पर एपीआई की सूची में से, दूरी का मैट्रिक्स एपीआई देखें.
  4. अगर आपको सूची में एपीआई दिखता है, तो इसका मतलब है कि आपका काम हो गया है. अगर एपीआई सूची में नहीं है, तो इसे चालू करें:
    1. लाइब्रेरी टैब दिखाने के लिए, पेज के सबसे ऊपर, एपीआई चालू करें चुनें. इसके अलावा, बाईं ओर दिए गए मेन्यू से लाइब्रेरी को भी चुना जा सकता है.
    2. डिस्टेंस मैट्रिक्स एपीआई खोजें. इसके बाद, नतीजों की सूची में से उसे चुनें.
    3. चालू करें को चुनें. प्रोसेस पूरी होने के बाद, डैशबोर्ड पर एपीआई की सूची में डिस्टेंस मैट्रिक्स एपीआई दिखेगा.

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

कीमत

16 जुलाई, 2018 से Maps, रास्तों, और जगहों के लिए, इस्तेमाल के हिसाब से पैसे चुकाने वाला एक नया प्राइसिंग प्लान लागू हुआ. 'JavaScript डिस्टेंस मैट्रिक्स' सेवा के इस्तेमाल से जुड़ी नई कीमतों और इस्तेमाल की सीमाओं के बारे में ज़्यादा जानने के लिए, डिस्टेंस मैट्रिक्स एपीआई के लिए इस्तेमाल और बिलिंग की जानकारी देखें.

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

नीतियां

डिस्टेंस मैट्रिक्स सेवा का इस्तेमाल, डिस्टेंस मैट्रिक्स एपीआई के लिए बताई गई नीतियों के मुताबिक होना चाहिए.

दूरी के मैट्रिक्स के लिए अनुरोध

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

आपने google.maps.DistanceMatrixService कंस्ट्रक्टर ऑब्जेक्ट के ज़रिए, अपने कोड में डिस्टेंस मैट्रिक्स सेवा को ऐक्सेस किया है. DistanceMatrixService.getDistanceMatrix() वाला तरीका, डिस्टेंस मैट्रिक्स सेवा के लिए अनुरोध शुरू करता है. इसमें 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'
  }
}

दूरी के मैट्रिक्स के जवाब

डिस्टेंस मैट्रिक्स सेवा को कॉल करने पर, 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"
      }
    } ]
  } ]
}

दूरी के मैट्रिक्स के नतीजे

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

  • 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 पर सेट किया जाता है और departureTime को अनुरोध में distanceMatrixOptions फ़ील्ड के हिस्से के तौर पर शामिल किया जाता है.
    • distance: इस रास्ते की कुल दूरी मीटर (value) में और text के तौर पर दिखाई जाती है. टेक्स्ट वैल्यू को अनुरोध में बताए गए unitSystem के हिसाब से फ़ॉर्मैट किया जाता है. अगर कोई प्राथमिकता नहीं दी गई है, तो मेट्रिक में भी यह वैल्यू डाली जाती है.
    • fare: इसमें इस रूट का कुल किराया (यानी, टिकट की कुल कीमत) शामिल है. इस प्रॉपर्टी को सिर्फ़ सार्वजनिक परिवहन के अनुरोधों के लिए लौटाया जाता है. साथ ही, यह सिर्फ़ उन परिवहन कंपनियों के लिए भी लौटाया जाता है जहां किराये की जानकारी उपलब्ध हो. इसमें यह जानकारी शामिल होती है:
      • currency: ISO 4217 मुद्रा कोड, जो उस मुद्रा को दिखाता है जिसमें रकम दिखाई गई है.
      • value: ऊपर बताई गई मुद्रा में किराये की कुल रकम.

स्थिति कोड

दूरी के मैट्रिक्स के जवाब में पूरे जवाब के लिए एक स्टेटस कोड और हर एलिमेंट का स्टेटस शामिल होता है.

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

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

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