เลือกช่องที่จะส่งคืน

นักพัฒนาซอฟต์แวร์ในเขตเศรษฐกิจยุโรป (EEA)

เมื่อส่งคำขอการเข้ารหัสพิกัดภูมิศาสตร์ คุณสามารถใช้มาสก์ฟิลด์เพื่อระบุรายการฟิลด์ที่จะแสดงในการตอบกลับได้ มาสก์ฟิลด์ช่วยลดเวลาในการตอบสนองโดยทำให้มั่นใจว่าคุณจะไม่ขอข้อมูลที่ไม่จำเป็น

สำหรับวิธีการเข้ารหัสพิกัดภูมิศาสตร์พื้นฐาน (เข้ารหัสพิกัดภูมิศาสตร์ของที่อยู่, เข้ารหัสพิกัดภูมิศาสตร์ของสถานที่ตั้ง และการเข้ารหัสพิกัดภูมิศาสตร์ของสถานที่) ระบบจะแสดงผลฟิลด์ทั้งหมดในออบเจ็กต์การตอบกลับโดยค่าเริ่มต้น ซึ่งแตกต่างจากการค้นหาจุดหมายที่ต้องระบุมาสก์ฟิลด์ แม้ว่ามาสก์ฟิลด์จะไม่จำเป็นสำหรับเมธอดพื้นฐาน แต่เราขอแนะนำให้คุณใช้มาสก์ฟิลด์เพื่อลดเวลาในการตอบสนอง

กำหนดฟิลด์มาสก์การตอบกลับ

มาสก์ฟิลด์การตอบกลับคือรายการที่คั่นด้วยคอมมาของเส้นทางที่ไม่มีช่องว่าง โดยแต่ละเส้นทางจะระบุฟิลด์ที่ไม่ซ้ำกันในออบเจ็กต์การตอบกลับ เส้นทางจะเริ่มต้นจากช่องการตอบกลับระดับบนสุดและใช้เส้นทางที่คั่นด้วยจุดไปยังช่องที่ระบุ

ส่งมาสก์ฟิลด์การตอบกลับไปยังคำขอโดยใช้พารามิเตอร์ของ URL $fields หรือ fields หรือโดยใช้ส่วนหัว HTTP หรือ 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][...]

มาสก์ฟิลด์ปลายทางการค้นหา

เมื่อเรียกใช้ SearchDestinations ให้ระบุแอตทริบิวต์ปลายทางที่แน่นอนที่คุณต้องการ เช่น รายละเอียดสถานที่หลัก ทางเข้า จุดนำทาง โครงร่างอาคาร (displayPolygon) และจุดสังเกต

curl -X POST -d '{"addressQuery": {"addressQuery": "1600 Amphitheatre Pkwy, Mountain View, CA"}}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-FieldMask: destinations.primary.displayName,destinations.primary.displayPolygon,destinations.entrances,destinations.navigationPoints,destinations.landmarks' \
-H "X-Goog-Api-Key: API_KEY" \
https://geocode.googleapis.com/v4/geocode/destinations

มาสก์ฟิลด์การเข้ารหัสพิกัดภูมิศาสตร์หลัก

เช่น หากต้องการแสดงเฉพาะช่อง placeId ในการตอบกลับ GeocodeAddress ให้ใช้มาสก์ช่องต่อไปนี้

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/v4/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
        }
      }
    }
  ]
}

หากต้องการคืนทั้ง 2 รายการ ให้ทำดังนี้

-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