चुनें कि कौनसी जानकारी वापस करनी है
रूट या रूट मैट्रिक्स को कंप्यूट करने के लिए किसी तरीके को कॉल करते समय, आपको रिस्पॉन्स में रिटर्न के लिए फ़ील्ड की सूची बनाकर यह तय करना होगा कि आपको कौनसी जानकारी चाहिए. लौटाए गए फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं है. अगर इस सूची को छोड़ दिया जाता है, तो ये तरीके गड़बड़ी लौटाते हैं.
रिस्पॉन्स फ़ील्ड मास्क बनाकर, फ़ील्ड की सूची बनाई जा सकती है. इसके बाद, यूआरएल पैरामीटर $fields
या fields
या एचटीटीपी या gRPC हेडर X-Goog-FieldMask
का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को किसी भी तरीके में पास किया जा सकता है.
फ़ील्ड मास्क का इस्तेमाल करना, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि ज़रूरत के हिसाब से डेटा न मांगें.
यूआरएल पैरामीटर के बारे में ज़्यादा जानने के लिए, सिस्टम पैरामीटर देखें.
रिस्पॉन्स फ़ील्ड मास्क तय करें
रिस्पॉन्स फ़ील्ड मास्क, पाथ की कॉमा-सेपरेटेड लिस्ट होती है. इसमें हर पाथ, रिस्पॉन्स मैसेज में एक यूनीक फ़ील्ड के बारे में बताता है. पाथ, टॉप-लेवल के रिस्पॉन्स मैसेज से शुरू होता है और तय किए गए फ़ील्ड के लिए, बिंदु से अलग किए गए पाथ का इस्तेमाल करता है.
फ़ील्ड पाथ इस तरह बनाएं और तय करें:
- Routes API से, वे फ़ील्ड ढूंढें जिनमें आपके काम की जानकारी मौजूद है. जानकारी के लिए, फ़ील्ड रेफ़रंस देखें.
- आपको जिन फ़ील्ड की ज़रूरत है उनके पाथ तय करें और उनके लिए फ़ील्ड मास्क बनाएं: ज़्यादा जानकारी के लिए, तय करें कि आपको कौनसा फ़ील्ड मास्क इस्तेमाल करना है लेख पढ़ें.
अपनी ज़रूरत के सभी फ़ील्ड के लिए, फ़ील्ड मास्क जोड़ें. साथ ही, फ़ील्ड मास्क को कॉमा से अलग करें. उदाहरण के लिए, मंज़िल तक पहुंचने के लिए
distanceMeters
का अनुरोध करने और रास्ते के हर चरण की अवधि के लिए अनुरोध करने के लिए, दोनों को कॉमा से अलग करते हुए डालें. साथ ही, रास्ते के बीच में खाली जगह न छोड़ें:routes.legs.distanceMeters,routes.legs.steps.duration
अपने एपीआई अनुरोध के साथ फ़ील्ड मास्क भेजें. उदाहरण के लिए, cURL अनुरोध में,
-H
औरX-Goog-FieldMask
के साथ फ़ील्ड मास्क तय करना होगा:-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
फ़ील्ड रेफ़रंस
फ़ील्ड मास्क के ज़रिए जवाब में जिन फ़ील्ड का अनुरोध किया जा सकता है उन्हें देखने के लिए, नीचे दी गई सूची में दिए गए Routes API के रेफ़रंस देखें. रेफ़रंस में दिखाए गए तरीके से, ऊंट के केस में फ़ील्ड चुनें. उदाहरण के लिए, routePreference
.
इन रेफ़रंस में, उपलब्ध फ़ील्ड शामिल होते हैं. हालांकि, पूरा फ़ील्ड मास्क पाथ तय करने के लिए, आपको फ़ील्ड की हैरारकी देखनी होगी. फ़ील्ड की हैरारकी पाने से जुड़ी जानकारी के लिए, तय करें कि आपको कौनसा फ़ील्ड मास्क इस्तेमाल करना है.
- कंप्यूट रूट फ़ील्ड मास्क
- रूट मैट्रिक्स फ़ील्ड मास्क की गिनती करना
- REST: रिस्पॉन्स के मुख्य हिस्से के फ़ील्ड के बारे में बताता है, ताकि जवाब दिखाए जा सकें.
- gRPC: रिटर्न के रिस्पॉन्स में RouteMatrixElement ऑब्जेक्ट के फ़ील्ड के बारे में बताता है.
तय करें कि कौनसे फ़ील्ड मास्क का इस्तेमाल करना है
यहां बताया गया है कि आपको किन फ़ील्ड का इस्तेमाल करना है, यह कैसे तय करें और उनके लिए फ़ील्ड मास्क कैसे बनाएं:
*
के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड का अनुरोध करें.- आपको जो फ़ील्ड चाहिए उसके जवाब में, फ़ील्ड की हैरारकी देखें.
पिछले चरण में दिखाए गए फ़ील्ड की हैरारकी का इस्तेमाल करके, अपने फ़ील्ड मास्क बनाएं. इसके लिए, यह फ़ॉर्मैट इस्तेमाल करें:
topLevelField[.secondLevelField][.thirdLevelField][...]
उदाहरण के लिए, किसी रूट से इस आंशिक जवाब के लिए:
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
अगर आपको रूट लेग के लिए सिर्फ़ distanceMeters
फ़ील्ड दिखाना है, यानी पिछले सैंपल में आखिरी distanceMeters
, तो आपका फ़ील्ड मास्क इस तरह है:
routes.legs.distanceMeters
अगर आपको इसके बजाय, रूट लेग के हर चरण के लिए distanceMeters
फ़ील्ड दिखाना है, यानी पिछले सैंपल में steps
के अंदर distanceMeters
, तो आपका फ़ील्ड मास्क इस तरह होगा:
routes.legs.steps.distanceMeters
अगर आपको ऊपर दिए गए नतीजे के साथ दोनों नतीजे दिखाने हैं, तो आपका फ़ील्ड मास्क इस तरह दिखेगा:
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
फ़ील्ड मास्क पाथ के उदाहरण
इस सेक्शन में REST और gRPC कॉल में रिस्पॉन्स फ़ील्ड मास्क के हिस्से के तौर पर किसी फ़ील्ड पाथ को तय करने के तरीके के बारे में ज़्यादा उदाहरण दिए गए हैं.
computeRoutes
पर REST कॉल करें
पहले उदाहरण में, आपने रूट कैलकुलेट करने के लिए, computeRoutes
तरीके के साथ REST कॉल का इस्तेमाल किया है. इस उदाहरण में, हेडर में आपको फ़ील्ड मास्क बताने का विकल्प मिलता है. इससे, रिस्पॉन्स में distanceMeters
और duration
रूट का फ़ील्ड दिखाया जाता है. फ़ील्ड के नाम से पहले routes
लगाना ध्यान रखें.
X-Goog-FieldMask: routes.distanceMeters,routes.duration
computeRouteMatrix
पर REST कॉल करें
रूट मैट्रिक्स की गणना करने के लिए इस्तेमाल किए जाने वाले REST computeRouteMatrix
तरीके के लिए, हेडर में यह बताएं कि ऑरिजिन और डेस्टिनेशन के हर कॉम्बिनेशन के लिए originIndex
, destinationIndex
, और duration
देना है:
X-Goog-FieldMask: originIndex,destinationIndex,duration
gRPC कॉल
gRPC के लिए, रिस्पॉन्स फ़ील्ड मास्क वाला वैरिएबल सेट करें. इसके बाद, उस वैरिएबल को अनुरोध में पास किया जा सकता है.
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
फ़ील्ड पाथ पर ध्यान देना
सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको ज़रूरत के मुताबिक फ़ील्ड दिखाने के जवाब में चाहिए:
- प्रोसेस होने में लगने वाले समय को कम करता है. इसलिए, आपके नतीजों को प्रोसेस होने में कम समय लगता है.
- यह पक्का करता है कि इंतज़ार के समय की परफ़ॉर्मेंस स्थायी हो. अगर सभी फ़ील्ड चुने जाते हैं या टॉप लेवल पर सभी फ़ील्ड चुने जाते हैं, तो नए फ़ील्ड जोड़ने पर और उन्हें आपके जवाब में अपने-आप शामिल करने पर, परफ़ॉर्मेंस में गिरावट दिख सकती है.
- नतीजों का साइज़ छोटा होता है. इससे नेटवर्क की क्षमता बढ़ जाती है.
- पक्का करती है कि आप गैर-ज़रूरी डेटा का अनुरोध न करें. इससे, प्रोसेसिंग में लगने वाले समय और बिल से जुड़े शुल्कों से बचने में मदद मिलती है.
फ़ील्ड मास्क बनाने के बारे में ज़्यादा जानकारी के लिए, field_mask.proto देखें.
रूट टोकन का अनुरोध करें
रूट एपीआई से, जनरेट किए गए रूट के लिए रूट टोकन दिखाने का अनुरोध करने के लिए, यह तरीका अपनाएं:
- रूट टोकन दिखाने के लिए ज़रूरी इन पैरामीटर को सेट करें:
travelMode
कोDRIVE
पर सेट करें.routingPreference
कोTRAFFIC_AWARE
याTRAFFIC_AWARE_OPTIMAL
पर सेट करें.
- देखें कि आपके रास्ते के वेपॉइंट में से कोई
via
वेपॉइंट न हो. - रूट टोकन देने के लिए
routes.routeToken
फ़ील्ड मास्क तय करें:X-Goog-FieldMask: routes.routeToken
नेविगेशन SDK टूल में, पहले से तय रास्ते के लिए रूट टोकन का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, रूट प्लान करना (Android) या रूट प्लान करना (iOS) देखें.
रूट टोकन का उदाहरण
यहां एक ऑरिजिन और सिंगल-डेस्टिनेशन रूट के लिए, cURL अनुरोध की बॉडी का उदाहरण दिया गया है. इसमें रूट टोकन का अनुरोध करने के लिए फ़ील्ड मास्क का इस्तेमाल किया गया है. साथ ही, रूट की अवधि, दूरी, और रूट की पॉलीलाइन के बारे में भी बताया गया है:
curl -X POST -d {"origin":{ "location": { "latLng":{ "latitude": -37.8167, "longitude": 144.9619 } } }, "destination":{ "location": { "latLng":{ "latitude":-37.8155, "longitude": 144.9663 } } }, "routingPreference":"TRAFFIC_AWARE", "travelMode":"DRIVE" } -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H X-Goog-FieldMask: routes.routeToken,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline 'https://routes.googleapis.com/directions/v2:computeRoutes'
ज़्यादा जानकारी के लिए, Compute Routes API का रेफ़रंस देखें.