เมื่อส่งคำขอ Geocoding คุณจะใช้มาสก์ฟิลด์เพื่อระบุ รายการฟิลด์ที่จะแสดงผลในการตอบกลับได้ โดยค่าเริ่มต้น คำขอจะแสดงฟิลด์ทั้งหมด ในออบเจ็กต์การตอบกลับ
ใช้มาสก์ฟิลด์เพื่อให้แน่ใจว่าคุณจะไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยลดเวลาในการตอบสนอง
กำหนดฟิลด์มาสก์การตอบกลับ
มาสก์ฟิลด์การตอบกลับคือรายการเส้นทางที่คั่นด้วยคอมมาโดยไม่มีช่องว่าง ซึ่งแต่ละเส้นทางจะระบุฟิลด์ที่ไม่ซ้ำกันในออบเจ็กต์การตอบกลับ เส้นทางจะเริ่มต้นจาก ฟิลด์การตอบกลับระดับบนสุดและใช้เส้นทางที่คั่นด้วยจุดไปยังฟิลด์ที่ระบุ
ส่งมาสก์ฟิลด์การตอบกลับไปยังคำขอโดยใช้พารามิเตอร์ URL $fields
หรือ fields
หรือใช้ส่วนหัว HTTP หรือ gRPC X-Goog-FieldMask
ตัวอย่างมาสก์ฟิลด์
ด้านล่างนี้คือการตอบกลับที่สมบูรณ์จากคำขอ Geocoding ไปข้างหน้า
{ "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 } } } ] }
วิธีส่งคืนทั้ง 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