चुनें कि कौनसी जानकारी वापस करनी है
किसी रास्ते या रास्ते के मैट्रिक का हिसाब लगाने के लिए कोई तरीका इस्तेमाल करते समय, आपको यह बताना होगा कि आपको जवाब में कौनसी जानकारी चाहिए. इसके लिए, आपको उन फ़ील्ड की सूची बनानी होगी जिन्हें जवाब में दिखाना है. लौटाए गए फ़ील्ड की कोई डिफ़ॉल्ट सूची नहीं है. अगर इस सूची को शामिल नहीं किया जाता है, तो मेथड गड़बड़ी का मैसेज दिखाते हैं.
रिस्पॉन्स फ़ील्ड मास्क बनाकर, फ़ील्ड की सूची बनाई जा सकती है. इसके बाद,
यूआरएल पैरामीटर $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
तरीका
एक रास्ता. इस उदाहरण में, हेडर में फ़ील्ड मास्क तय किए गए हैं, ताकि रिस्पॉन्स में रूट 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 का रेफ़रंस.