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