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

खास जानकारी

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

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

शुरुआत करना

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

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

  1. Google Cloud Console पर जाएं.
  2. प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वही प्रोजेक्ट चुनें जिसे Maps JavaScript एपीआई के लिए सेट अप किया गया हो और खोलें पर क्लिक करें.
  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 को सिर्फ़ उन Google Maps Platform Premium प्लान के ग्राहकों को लौटाया जाता है जहां ट्रैफ़िक डेटा उपलब्ध होता है. mode को driving पर सेट किया गया है और अनुरोध में distanceMatrixOptions फ़ील्ड के हिस्से के तौर पर departureTime को शामिल किया गया है.
    • 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];
      }
    }
  }
}