रास्ते की मैट्रिक्स, रास्ते की जानकारी देने वाला दो डाइमेंशन वाला अरे होता है. इसमें पंक्तियां, शुरुआती जगहों और कॉलम, मंज़िलों के बारे में बताते हैं. शुरुआत की जगहों और मंज़िलों की सूची के आधार पर, Route Matrix क्लास हर जगह से शुरू होने और हर जगह पर खत्म होने वाले रूट की दूरी और अवधि का हिसाब लगाती है. Route Matrix क्लास का इस्तेमाल करके, शुरुआत की कई जगहों से अलग-अलग मंज़िलों तक की यात्रा में लगने वाली दूरी और समय का हिसाब लगाया जा सकता है.
अनुरोध की सीमाएं
RouteMatrix.computeRouteMatrix()
तरीके से, पतों या जगहों के इंस्टेंस और आइटम का इस्तेमाल करके वेपॉइंट के लिए अनुरोध की इन सीमाओं को लागू किया जाता है. आइटम, रूट मैट्रिक्स में मौजूद हर शुरुआती जगह और मंज़िल के बीच के रास्ते होते हैं. इसलिए, आइटम की संख्या, शुरुआती जगहों की संख्या और मंज़िलों की संख्या के गुणनफल के बराबर होती है. उदाहरण के लिए, अगर आपके पास 10 मूल जगहें और 10
मंज़िलें हैं, तो आपके पास 100 आइटम हैं:
TRANSIT
रूट के अलावा अन्य रूट के लिए, आइटम की संख्या 625 से ज़्यादा नहीं हो सकती.- अगर आपने
TRANSIT
route एट्रिब्यूट की वैल्यू दी है, तो प्रॉडक्ट की संख्या 100 से ज़्यादा नहीं हो सकती. - अगर आपने
TRAFFIC_AWARE_OPTIMAL
तय किया है, तो आइटम की संख्या 100 से ज़्यादा नहीं हो सकती. - अगर पतों या जगह के इंस्टेंस का इस्तेमाल करके, मूल जगह या मंज़िलें तय की जाती हैं, तो इस तरीके से ज़्यादा से ज़्यादा 50 मूल जगह या मंज़िलें तय की जा सकती हैं.
रूट मैट्रिक्स के अनुरोध का उदाहरण
यहां ComputeRouteMatrixRequest
का उदाहरण दिया गया है. इस उदाहरण में, ये काम किए गए हैं:
- इसमें, यात्रा शुरू करने की दो जगहों और मंज़िल की दो जगहों के लिए, रास्ते में रुकने की जगहों की जानकारी देने वाली एक ऐरे दिखाई गई है. यह तरीका, हर शुरुआती जगह से हर मंज़िल तक का रास्ता तय करता है. इसलिए, जवाब में चार रास्ते शामिल होते हैं.
ऐरे में, पहला एलिमेंट इंडेक्स 0 पर होता है, दूसरा इंडेक्स 1 पर होता है, और इसी तरह आगे भी होता है. - वे फ़ील्ड तय करें जिन्हें वापस लाना है. इस उदाहरण में, हर रूट के लिए
durationMillis
,distanceMeters
, औरcondition
की जानकारी वापस पाने का अनुरोध कॉन्फ़िगर करें.
const request = { origins: [origin1, origin2], destinations: [destinationA, destinationB], travelMode: google.maps.TravelMode.DRIVING, units: google.maps.UnitSystem.METRIC, fields: ['durationMillis', 'distanceMeters', 'condition'], };
जवाब में, सभी शुरुआती और मंज़िल वाले वेपॉइंट के कॉम्बिनेशन के लिए, चार संभावित रास्ते शामिल हैं. जैसा कि यहां दिए गए उदाहरण में दिखाया गया है:
"matrix": { "rows": [ { "items": [ { "condition": "ROUTE_EXISTS", "distanceMeters": 202587, "durationMillis": 10040000 }, { "condition": "ROUTE_EXISTS", "distanceMeters": 252734, "durationMillis": 12240000 } ] }, { "items": [ { "condition": "ROUTE_EXISTS", "distanceMeters": 166135, "durationMillis": 6596000 }, { "condition": "ROUTE_EXISTS", "distanceMeters": 216282, "durationMillis": 8797000 } ] } ] }
नतीजे में मौजूद हर रास्ते की पहचान करने के लिए, शुरुआती और मंज़िल के इंडेक्स का इस्तेमाल करें. इससे 2D ऐरे में मौजूद RouteMatrixItem
का पता चलेगा. उदाहरण के लिए, अनुरोध में इंडेक्स 1 पर मौजूद शुरुआती जगह और इंडेक्स 0 पर मौजूद मंज़िल के लिए कैलकुलेट किए गए रूट की जानकारी देने वाला RouteMatrixItem
, RouteMatrix.rows
कलेक्शन के दूसरे एलिमेंट और RouteMatrixRow.items
कलेक्शन के पहले एलिमेंट में होगा.
यहां दिए गए कोड स्निपेट में, RouteMatrixItem
की पहचान करने का तरीका बताया गया है, ताकि किसी खास जगह से दूसरी जगह तक जाने का रास्ता पता लगाया जा सके:
// Find the route for origin 'x' and destination 'y'. const {matrix} = await RouteMatrix.computeRouteMatrix(request); const myRouteMatrixItem = matrix.rows[x].items[y];
वापस लाने के लिए फ़ील्ड चुनें
रूट मैट्रिक्स का अनुरोध करते समय, आपको फ़ील्ड मास्क का इस्तेमाल करना होगा. इससे यह तय किया जा सकेगा कि जवाब में कौनसी जानकारी शामिल होनी चाहिए.
फ़ील्ड मास्क का इस्तेमाल करने से, यह भी पक्का होता है कि आपने गैर-ज़रूरी डेटा का अनुरोध नहीं किया है. इससे जवाब मिलने में लगने वाले समय को कम करने में मदद मिलती है. साथ ही, यह ऐसी जानकारी को वापस लाने से रोकता है जिसकी आपके सिस्टम को ज़रूरत नहीं है.
आपको जिन फ़ील्ड की ज़रूरत है उनकी सूची देने के लिए,
ComputeRoutesMatrixRequest.fields
प्रॉपर्टी सेट करें. यहां दिए गए स्निपेट में इसका उदाहरण दिया गया है:
fields: ['durationMillis', 'distanceMeters', 'condition'],
तय करें कि किन फ़ील्ड मास्क का इस्तेमाल करना है
यहां यह तय करने का तरीका बताया गया है कि आपको किन फ़ील्ड का इस्तेमाल करना है. साथ ही, उनके लिए फ़ील्ड मास्क बनाने का तरीका भी बताया गया है:
['*']
के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड के लिए अनुरोध करें.- आपको जिन फ़ील्ड की ज़रूरत है उनके लिए,
RouteMatrixItem
क्लास में फ़ील्ड की हैरारकी देखें. अपने फ़ील्ड मास्क बनाएं. इसके लिए, पिछले चरण में दिखाए गए फ़ील्ड के क्रम का इस्तेमाल करें. साथ ही, इस फ़ॉर्मैट का इस्तेमाल करें:
topLevelField[.secondLevelField][.thirdLevelField][...]
उदाहरण के लिए, इस RouteMatrixItem
के लिए:
"travelAdvisory": { "fuelConsumptionMicroliters": 0, "tollInfo": { "estimatedPrices": [ { "currencyCode": "USD", "units": 4, "nanos": 400000000 } ] } },
अगर आपको सिर्फ़ RouteMatrixItem
के लिए tollInfo
फ़ील्ड की वैल्यू वापस लानी है, तो आपका फ़ील्ड मास्क इस तरह दिखेगा:
fields: ['travelAdvisory.tollInfo']
अगर आपको ईंधन की अनुमानित खपत का अनुरोध करना है, तो आपका फ़ील्ड मास्क इस तरह होगा:
fields: ['travelAdvisory.fuelConsumptionMicroliters']
अगर आपको दोनों के लिए अनुरोध करना है, तो आपका फ़ील्ड मास्क इस तरह होगा:
fields: ['travelAdvisory.fuelConsumptionMicroliters', 'travelAdvisory.tollInfo']
अगर आपको यात्रा से जुड़ी पूरी सलाह का अनुरोध करना है, तो आपका फ़ील्ड मास्क इस तरह दिखेगा:
fields: ['travelAdvisory']