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