Saat membuat permintaan geocoding, Anda dapat menggunakan mask kolom untuk menentukan daftar kolom yang akan ditampilkan dalam respons. Untuk endpoint Geocode alamat, Geocode lokasi, dan Geocoding tempat, semua kolom dalam objek respons ditampilkan secara default. Untuk endpoint Search for destinations, Anda harus menentukan mask kolom dalam permintaan API.
Gunakan mask kolom untuk memastikan Anda tidak meminta data yang tidak diperlukan, yang pada gilirannya membantu latensi respons.
Menentukan mask kolom respons
Masker kolom respons adalah daftar jalur yang dipisahkan koma tanpa spasi, dengan setiap jalur menentukan kolom unik dalam objek respons. Jalur dimulai dari kolom respons tingkat teratas dan menggunakan jalur yang dipisahkan dengan titik ke kolom yang ditentukan.
Teruskan mask kolom respons ke permintaan menggunakan parameter URL $fields
atau fields
, atau menggunakan header HTTP atau gRPC X-Goog-FieldMask
.
Contoh mask kolom
Di bawah ini adalah respons lengkap dari permintaan geocoding penerusan:
{ "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", ... }
Buat mask kolom Anda menggunakan hierarki kolom respons, dalam bentuk:
topLevelField[.secondLevelField][.thirdLevelField][...]
Misalnya, untuk menampilkan hanya kolom placeId
dalam respons, gunakan mask kolom:
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"
Responsnya sekarang adalah:
{ "results": [ { "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE" } ] }
Untuk menampilkan kolom viewport
, mask kolom Anda adalah:
-H 'X-Goog-FieldMask: results.viewport'
Responsnya sekarang adalah:
{ "results": [ { "viewport": { "low": { "latitude": 37.420654569708496, "longitude": -122.08547618029148 }, "high": { "latitude": 37.423352530291496, "longitude": -122.0827782197085 } } } ] }
Untuk mengembalikan keduanya:
-H 'X-Goog-FieldMask: results.placeId,results.viewport'
Responsnya sekarang adalah:
{ "results": [ { "placeId": "ChIJF4Yf2Ry7j4AR__1AkytDyAE", "viewport": { "low": { "latitude": 37.420654569708496, "longitude": -122.08547618029148 }, "high": { "latitude": 37.423352530291496, "longitude": -122.0827782197085 } } } ] }
Mask kolom gRPC
Untuk gRPC, tetapkan variabel yang berisi mask kolom respons. Kemudian, Anda dapat meneruskan variabel tersebut ke permintaan.
const ( fieldMask = "results.placeId,results.viewport" )
Pertimbangan jalur kolom
Hanya sertakan kolom yang Anda perlukan dalam respons untuk menampilkan hanya kolom yang Anda butuhkan:
- Mengurangi waktu pemrosesan, sehingga hasil Anda ditampilkan dengan latensi yang lebih rendah.
- Memastikan performa latensi yang stabil. Jika Anda memilih semua kolom, atau jika Anda memilih semua kolom di tingkat teratas, Anda mungkin mengalami penurunan performa saat kolom baru ditambahkan dan kemudian otomatis disertakan dalam respons Anda.
- Menghasilkan ukuran respons yang lebih kecil, yang berarti throughput jaringan yang lebih tinggi.
Untuk mengetahui detail selengkapnya tentang cara membuat mask kolom, lihat field_mask.proto.