खास जानकारी
Google की Distance Matrix सेवा, यात्रा के किसी दिए गए मोड का इस्तेमाल करके, शुरुआत की कई जगहों और अलग-अलग मंज़िलों के बीच यात्रा की दूरी और यात्रा में लगने वाले समय का हिसाब लगाती है.
यह सेवा, रास्ते की पूरी जानकारी नहीं देती. रास्ते की जानकारी पाने के लिए, Directions Service को शुरुआती जगह और मंज़िल की जानकारी दें. इसमें पॉलीलाइन और टेक्स्ट के तौर पर दिए गए निर्देश शामिल हैं.
शुरू करना
Maps JavaScript API में Distance Matrix सेवा का इस्तेमाल करने से पहले, पक्का करें कि 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 सेवा के लिए, कीमत और इस्तेमाल से जुड़ी नीतियों के बारे में जानने के लिए, Distance Matrix API (लेगसी) के लिए इस्तेमाल और बिलिंग सेक्शन देखें.
ध्यान दें: Distance Matrix सेवा को भेजी गई हर क्वेरी में, अनुमति वाले एलिमेंट की संख्या सीमित होती है. शुरुआत की जगहों की संख्या को मंज़िलों की संख्या से गुणा करने पर, एलिमेंट की संख्या मिलती है.
नीतियां
Distance Matrix सेवा का इस्तेमाल, Distance Matrix API (लेगसी) के लिए बताई गई नीतियों के मुताबिक होना चाहिए.
Distance Matrix API के अनुरोध
डिस्टेंस मैट्रिक्स सेवा को एसिंक्रोनस तरीके से ऐक्सेस किया जाता है, क्योंकि Google Maps API को किसी बाहरी सर्वर को कॉल करना होता है. इसलिए, आपको अनुरोध पूरा होने पर नतीजे प्रोसेस करने के लिए, कॉलबैक तरीके का इस्तेमाल करना होगा.
अपने कोड में Distance Matrix सेवा को ऐक्सेस करने के लिए, 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ऑब्जेक्ट या Place ऑब्जेक्ट शामिल होते हैं. इनसे दूरी और समय का हिसाब लगाया जाता है.destinations(ज़रूरी है) — यह एक ऐसा कलेक्शन होता है जिसमें एक या उससे ज़्यादा पते की स्ट्रिंग,google.maps.LatLngऑब्जेक्ट या Place ऑब्जेक्ट शामिल होते हैं. इनके बीच की दूरी और समय का हिसाब लगाया जाता है.travelMode(ज़रूरी नहीं है) — दिशा-निर्देशों का हिसाब लगाते समय, इस्तेमाल किया जाने वाला परिवहन का तरीका. यात्रा के मोड के बारे में सेक्शन देखें.transitOptions(ज़रूरी नहीं) — ऐसे विकल्प जो सिर्फ़ उन अनुरोधों पर लागू होते हैं जिनमेंtravelModeTRANSITहै. मान्य वैल्यू के बारे में बस, मेट्रो वगैरह के विकल्प सेक्शन में बताया गया है.drivingOptions(ज़रूरी नहीं) उन वैल्यू के बारे में बताता है जो सिर्फ़ उन अनुरोधों पर लागू होती हैं जिनमेंtravelModeDRIVINGहै. मान्य वैल्यू के बारे में ड्राइविंग के विकल्प सेक्शन में बताया गया है.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 से मिले जवाब
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एक कलेक्शन है जिसमें उन जगहों की जानकारी होती है जिन्हें Distance Matrix API के अनुरोध के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]; } } } }