चुनें कि कौनसी जानकारी वापस करनी है

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

रिस्पॉन्स फ़ील्ड मास्क बनाकर, फ़ील्ड की सूची बनाई जा सकती है. इसके बाद, यूआरएल पैरामीटर $fields का इस्तेमाल करके किसी भी तरीके के लिए रिस्पॉन्स फ़ील्ड मास्क या fields या एचटीटीपी या gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके ऐसा किया जा सकता है.

फ़ील्ड मास्क का इस्तेमाल करना, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि आप अनुरोध न करें इसकी वजह से, प्रोसेसिंग में लगने वाले ग़ैर-ज़रूरी समय और बिल किए गए शुल्कों से बचने में मदद मिलती है.

यूआरएल पैरामीटर के बारे में ज़्यादा जानने के लिए, यहां जाएं सिस्टम पैरामीटर.

रिस्पॉन्स फ़ील्ड मास्क तय करें

रिस्पॉन्स फ़ील्ड मास्क, पाथ की कॉमा-सेपरेटेड लिस्ट होती है, जिसमें हर पाथ, रिस्पॉन्स मैसेज में एक यूनीक फ़ील्ड के बारे में बताता है. पाथ, टॉप-लेवल के रिस्पॉन्स मैसेज से शुरू होता है और बिंदु से अलग किया गया पाथ.

फ़ील्ड पाथ इस तरह बनाएं और तय करें:

  1. Routes API से, वे फ़ील्ड ढूंढें जिनमें आपके काम की जानकारी मौजूद है. जानकारी के लिए, फ़ील्ड रेफ़रंस देखें.
  2. आपको जिन फ़ील्ड की ज़रूरत है उनके पाथ तय करें और उनके लिए फ़ील्ड मास्क बनाएं: ज़्यादा जानकारी के लिए, तय करें कि आपको कौनसा फ़ील्ड मास्क इस्तेमाल करना है लेख पढ़ें.
  3. अपनी ज़रूरत के सभी फ़ील्ड के लिए, फ़ील्ड मास्क जोड़ें. साथ ही, फ़ील्ड मास्क को कॉमा से अलग करें. उदाहरण के लिए, मंज़िल तक पहुंचने के लिए distanceMeters का अनुरोध करने और रास्ते के हर चरण की अवधि के लिए अनुरोध करने के लिए, दोनों को कॉमा से अलग करते हुए डालें. साथ ही, रास्ते के बीच में खाली जगह न छोड़ें:

    routes.legs.distanceMeters,routes.legs.steps.duration
  4. अपने एपीआई अनुरोध के साथ फ़ील्ड मास्क भेजें. उदाहरण के लिए, cURL अनुरोध में, -H और X-Goog-FieldMask के साथ फ़ील्ड मास्क तय करना होगा:

    -H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
उदाहरणों और ज़्यादा जानकारी के लिए, नीचे दिए गए सेक्शन देखें.

फ़ील्ड रेफ़रंस

फ़ील्ड मास्क के ज़रिए जवाब में जिन फ़ील्ड का अनुरोध किया जा सकता है उन्हें देखने के लिए, नीचे दी गई सूची में दिए गए Routes API के रेफ़रंस देखें. रेफ़रंस में दिखाए गए तरीके से, ऊंट के केस में फ़ील्ड चुनें. उदाहरण के लिए, routePreference.

इन रेफ़रंस में, उपलब्ध फ़ील्ड शामिल होते हैं; हालांकि, पूरा फ़ील्ड मास्क पाथ तय करने के लिए, आपको फ़ील्ड की हैरारकी देखनी होगी. फ़ील्ड की हैरारकी पाने से जुड़ी जानकारी के लिए, तय करें कि आपको कौनसा फ़ील्ड मास्क इस्तेमाल करना है.

  • कंप्यूट रूट फ़ील्ड मास्क
    • REST: रूट ऑब्जेक्ट इसमें 'लौटाए जाने वाले जवाब' के जवाब में routes. का इस्तेमाल करें. उदाहरण के लिए, routes.distanceMeters.
    • gRPC: इसके फ़ील्ड के बारे में बताता है रूट ऑब्जेक्ट इसमें लौटाने के लिए प्रतिक्रिया.
  • रूट मैट्रिक्स फ़ील्ड मास्क कंप्यूट

तय करें कि कौनसे फ़ील्ड मास्क का इस्तेमाल करना है

यहां बताया गया है कि आपको किन फ़ील्ड का इस्तेमाल करना है, यह कैसे तय करें और उनके लिए फ़ील्ड मास्क कैसे बनाएं:

  1. * के फ़ील्ड मास्क का इस्तेमाल करके, सभी फ़ील्ड का अनुरोध करें.
  2. जवाब के तौर पर दिए गए जवाब में, फ़ील्ड की हैरारकी देखें डालें.
  3. पिछले चरण में दिखाए गए फ़ील्ड की हैरारकी का इस्तेमाल करके, अपने फ़ील्ड मास्क बनाएं. इसके लिए, यह फ़ॉर्मैट इस्तेमाल करें:

    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 के लिए सबमिट करते हैं.

रूट टोकन का अनुरोध करें

रूट एपीआई से, जनरेट किए गए रूट के लिए रूट टोकन दिखाने का अनुरोध करने के लिए, यह तरीका अपनाएं:

  1. रूट टोकन दिखाने के लिए ज़रूरी इन पैरामीटर को सेट करें:
    • travelMode को DRIVE पर सेट करें.
    • routingPreference को TRAFFIC_AWARE या TRAFFIC_AWARE_OPTIMAL पर सेट करें.
  2. देखें कि आपके रास्ते के वेपॉइंट में से कोई via वेपॉइंट न हो.
  3. रूट टोकन देने के लिए 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 का रेफ़रंस.