เมื่อคุณส่งคำขอการเข้ารหัสทางภูมิศาสตร์ คุณสามารถใช้มาสก์ฟิลด์เพื่อระบุรายการฟิลด์ที่จะส่งกลับในการตอบกลับ สำหรับจุดสิ้นสุด Geocode ที่อยู่, Geocode ตำแหน่ง และ Place geocoding ฟิลด์ทั้งหมดในวัตถุตอบกลับจะถูกส่งคืนตามค่าเริ่มต้น สำหรับปลายทางค้นหาสถานที่ คุณต้องระบุมาสก์ฟิลด์ในคำขอ API
ใช้ Field Mask เพื่อให้แน่ใจว่าคุณจะไม่ขอข้อมูลที่ไม่จำเป็น ซึ่งจะช่วยลดเวลาในการตอบกลับ
กำหนดฟิลด์มาสก์การตอบกลับ
หน้ากากฟิลด์การตอบสนองเป็นรายการเส้นทางที่คั่นด้วยจุลภาคโดยไม่มีช่องว่าง โดยที่แต่ละเส้นทางจะระบุฟิลด์ที่ไม่ซ้ำกันในวัตถุการตอบสนอง เส้นทางจะเริ่มต้นจาก ฟิลด์การตอบกลับระดับบนสุดและใช้เส้นทางที่คั่นด้วยจุดไปยังฟิลด์ที่ระบุ
ส่งหน้ากากฟิลด์การตอบสนองไปยังคำขอโดยใช้พารามิเตอร์ 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][...]
เช่น หากต้องการแสดงเฉพาะฟิลด์ 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