दूरी का मैट्रिक्स बताने वाली सेवा

खास जानकारी

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. अगर आपको सूची में एपीआई दिखता है, तो इसका मतलब है कि आपका खाता सेट अप हो गया है. अगर एपीआई सूची में नहीं है, तो उसे चालू करें:
    1. लाइब्रेरी टैब देखने के लिए, पेज पर सबसे ऊपर, एपीआई चालू करें चुनें. इसके अलावा, बाईं ओर मौजूद मेन्यू में, लाइब्रेरी चुनें.
    2. Distance Matrix API खोजें. इसके बाद, नतीजों की सूची से इसे चुनें.
    3. चालू करें को चुनें. प्रोसेस पूरी होने के बाद, डैशबोर्ड पर एपीआई की सूची में Distance Matrix API दिखता है.

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

कीमत

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

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

नीतियां

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

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

दूरी का मैट्रिक्स बताने वाली सेवा को ऐक्सेस करने में समय लगता है, क्योंकि 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'
  }
}

Distance Matrix के जवाब

Distance Matrix सेवा को कॉल करने पर, एक 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 पर सेट किया गया हो, और 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 — सेवा ने आपके वेब पेज के लिए, 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];
      }
    }
  }
}