खास जानकारी
Google की दूरी का मैट्रिक्स सेवा, यात्रा के लिए चुने गए मोड का इस्तेमाल करके, शुरुआत की कई जगहों और मंज़िलों के बीच की दूरी और यात्रा में लगने वाले समय का हिसाब लगाती है.
यह सेवा, रास्ते की पूरी जानकारी नहीं देती. निर्देश सेवा को शुरुआती जगह और मंज़िल की जानकारी देकर, रास्ते की जानकारी पाई जा सकती है. इसमें पॉलीलाइन और टेक्स्ट के तौर पर निर्देश शामिल हैं.
शुरू करना
Maps JavaScript API में दूरी का मैट्रिक्स बताने वाली सेवा का इस्तेमाल करने से पहले, पक्का करें कि Google Cloud Console में Distance Matrix API (लेगसी) चालू हो. यह उसी प्रोजेक्ट में चालू होना चाहिए जिसे आपने Maps JavaScript API के लिए सेट अप किया है.
चालू किए गए एपीआई की सूची देखने के लिए:
- Google Cloud console पर जाएं.
- कोई प्रोजेक्ट चुनें बटन पर क्लिक करें. इसके बाद, वही प्रोजेक्ट चुनें जिसे आपने Maps JavaScript API के लिए सेट अप किया है. इसके बाद, खोलें पर क्लिक करें.
- डैशबोर्ड पर मौजूद एपीआई की सूची में, Distance Matrix API (लेगसी) ढूंढें.
- अगर आपको सूची में एपीआई दिखता है, तो आपको कोई कार्रवाई करने की ज़रूरत नहीं है. अगर एपीआई सूची में नहीं है, तो उसे 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]; } } } }