लौटाने के लिए फ़ील्ड चुनें

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

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

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

जवाब के फ़ील्ड मास्क को तय करना

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

यूआरएल पैरामीटर $fields या fields का इस्तेमाल करके या एचटीटीपी या gRPC हेडर X-Goog-FieldMask का इस्तेमाल करके, रिस्पॉन्स फ़ील्ड मास्क को किसी अनुरोध में पास करें.

फ़ील्ड मास्क के उदाहरण

यहां फ़ॉरवर्ड जियोकोडिंग के अनुरोध का पूरा जवाब दिखाया गया है:

{
  "results": [
    {
      "place": "//places.googleapis.com/places/ChIJF4Yf2Ry7j4AR__1AkytDyAE",
      "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE",
      "location": {
        "latitude": 37.422010799999995,
        "longitude": -122.08474779999999
      },
      "granularity": "ROOFTOP",
      "viewport": {
        "low": {
          "latitude": 37.420656719708511,
          "longitude": -122.08547523029148
        },
        "high": {
          "latitude": 37.4233546802915,
          "longitude": -122.0827772697085
        }
      },
      "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    ...
}

जवाब के फ़ील्ड की हैरारकी का इस्तेमाल करके, अपने फ़ील्ड मास्क बनाएं. इसके लिए, इस फ़ॉर्मैट का इस्तेमाल करें:

topLevelField[.secondLevelField][.thirdLevelField][...]

उदाहरण के लिए, रिस्पॉन्स में सिर्फ़ placeId फ़ील्ड को वापस लाने के लिए, फ़ील्ड मास्क का इस्तेमाल करें:

curl -X GET -H 'Content-Type: application/json' \
-H 'X-Goog-FieldMask: results.placeId' \
-H "X-Goog-Api-Key: API_KEY" \
"https://"geocode.googleapis.com/v4beta/"geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"

अब जवाब यह है:

{
  "results": [
    {
      "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE"
    }
  ]
}

viewport फ़ील्ड को वापस लाने के लिए, आपका फ़ील्ड मास्क यह है:

-H 'X-Goog-FieldMask: results.viewport'

अब जवाब यह है:

{
  "results": [
    {
      "viewport": {
        "low": {
          "latitude": 37.420654569708496,
          "longitude": -122.08547618029148
        },
        "high": {
          "latitude": 37.423352530291496,
          "longitude": -122.0827782197085
        }
      }
    }
  ]
}

दोनों को वापस भेजने के लिए:

-H 'X-Goog-FieldMask: results.placeId,results.viewport'

अब जवाब यह है:

{
  "results": [
    {
      "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE",
      "viewport": {
        "low": {
          "latitude": 37.420654569708496,
          "longitude": -122.08547618029148
        },
        "high": {
          "latitude": 37.423352530291496,
          "longitude": -122.0827782197085
        }
      }
    }
  ]
}

gRPC फ़ील्ड मास्क

gRPC के लिए, ऐसा वैरिएबल सेट करें जिसमें रिस्पॉन्स फ़ील्ड मास्क शामिल हो. इसके बाद, उस वैरिएबल को अनुरोध में पास किया जा सकता है.

const (
  fieldMask = "results.placeId,results.viewport"
)

फ़ाइल पाथ के बारे में ज़रूरी बातें

जवाब में सिर्फ़ वे फ़ील्ड शामिल करें जिनकी आपको ज़रूरत है, ताकि आपको सिर्फ़ वे फ़ील्ड मिलें जिनकी आपको ज़रूरत है:

  • प्रोसेसिंग में लगने वाला समय कम हो जाता है. इसलिए, आपको नतीजे कम समय में मिल जाते हैं.
  • इससे यह पक्का होता है कि लेटेन्सी की परफ़ॉर्मेंस स्थिर रहे. अगर आपने सभी फ़ील्ड चुने हैं या टॉप लेवल पर सभी फ़ील्ड चुने हैं, तो नए फ़ील्ड जोड़े जाने पर परफ़ॉर्मेंस में गिरावट आ सकती है. ऐसा इसलिए होता है, क्योंकि नए फ़ील्ड आपकी प्रतिक्रिया में अपने-आप शामिल हो जाते हैं.
  • इससे जवाब का साइज़ छोटा हो जाता है. इसका मतलब है कि नेटवर्क थ्रूपुट बढ़ जाता है.

फ़ील्ड मास्क बनाने के बारे में ज़्यादा जानकारी के लिए, field_mask.proto देखें.