Memilih informasi yang akan ditampilkan
Saat memanggil metode untuk menghitung matriks rute atau rute, Anda harus menentukan informasi yang diinginkan dengan mencantumkan kolom yang akan ditampilkan dalam respons. Tidak ada daftar default untuk kolom yang ditampilkan. Jika Anda menghilangkan daftar ini, metode akan menampilkan error.
Anda menentukan daftar kolom dengan membuat mask kolom respons. Selanjutnya, teruskan
mask kolom respons ke salah satu metode menggunakan parameter URL $fields
atau
fields
, atau dengan menggunakan header HTTP atau gRPC X-Goog-FieldMask
.
Penggunaan mask kolom merupakan praktik desain yang baik untuk memastikan Anda tidak meminta data yang tidak diperlukan. Cara ini akan membantu Anda menghindari waktu pemrosesan dan biaya penagihan yang tidak perlu.
Untuk mengetahui informasi selengkapnya tentang parameter URL, lihat Parameter Sistem.
Menentukan mask kolom respons
Mask kolom respons adalah daftar jalur yang dipisahkan koma, dengan setiap jalur menentukan kolom unik dalam pesan respons. Jalur dimulai dari pesan respons tingkat atas dan menggunakan jalur yang dipisahkan titik ke kolom yang ditentukan.
Buat dan tentukan jalur kolom sebagai berikut:
- Temukan kolom yang berisi informasi yang Anda perlukan dari Routes API. Untuk mengetahui detailnya, lihat Referensi Kolom.
- Tentukan jalur untuk kolom yang Anda perlukan dan buat mask kolom untuk kolom tersebut: Untuk mengetahui detailnya, lihat Menentukan mask kolom yang ingin Anda gunakan.
Gabungkan mask kolom untuk semua kolom yang Anda perlukan, dengan memisahkan mask kolom menggunakan koma. Misalnya, untuk meminta
distanceMeters
untuk segmen rute, ditambah durasi untuk setiap langkah segmen rute, masukkan keduanya, dipisahkan dengan koma, tanpa spasi:routes.legs.distanceMeters,routes.legs.steps.duration
Kirim mask kolom dengan permintaan API Anda. Misalnya, dalam permintaan cURL, Anda akan menentukan mask kolom dengan
-H
danX-Goog-FieldMask
:-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
Referensi Kolom
Untuk melihat kolom yang dapat Anda minta sebagai respons melalui mask kolom, lihat referensi Routes API yang ditautkan dalam daftar berikut. Tentukan kolom dalam camel case seperti yang ditunjukkan dalam referensi. Misalnya, routePreference
.
Referensi ini mencakup kolom yang tersedia. Namun, Anda harus merujuk pada hierarki kolom untuk menentukan jalur mask kolom secara lengkap. Untuk mengetahui detail tentang cara mendapatkan hierarki kolom, lihat Menentukan mask kolom yang ingin Anda gunakan.
- Mask kolom rute komputasi
- Mask kolom matriks rute komputasi
- REST: Menentukan kolom Isi respons yang akan ditampilkan.
- gRPC: Menentukan kolom objek RouteMatrixElement dalam respons yang akan ditampilkan.
Menentukan mask kolom yang akan digunakan
Berikut cara menentukan kolom yang ingin Anda gunakan, dan membuat mask kolom untuk kolom tersebut:
- Minta semua kolom menggunakan mask kolom
*
. - Lihat hierarki kolom dalam respons untuk kolom yang Anda inginkan.
Buat mask kolom menggunakan hierarki kolom yang ditampilkan pada langkah sebelumnya, menggunakan format ini:
topLevelField[.secondLevelField][.thirdLevelField][...]
Misalnya, untuk respons sebagian ini dari rute:
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
Jika Anda hanya ingin menampilkan kolom distanceMeters
untuk segmen rute; yaitu, distanceMeters
terakhir dalam contoh sebelumnya, mask kolom Anda adalah sebagai berikut:
routes.legs.distanceMeters
Jika Anda ingin menampilkan kolom distanceMeters
untuk setiap langkah segmen rute; yaitu, distanceMeters
di bagian steps
dalam contoh sebelumnya, mask kolom Anda adalah sebagai berikut:
routes.legs.steps.distanceMeters
Jika Anda ingin menampilkan keduanya, dengan hasil di atas, mask kolom Anda adalah sebagai berikut:
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
Contoh jalur mask kolom
Bagian ini berisi contoh lainnya tentang cara menentukan jalur kolom sebagai bagian dari mask kolom respons dalam panggilan REST dan gRPC.
Panggilan REST ke computeRoutes
Pada contoh pertama, Anda menggunakan panggilan REST ke metode computeRoutes
untuk menghitung rute. Dalam contoh ini, di header, Anda menentukan mask kolom untuk menampilkan kolom distanceMeters
dan duration
rute dalam respons. Jangan lupa untuk menambahkan awalan routes
ke nama kolom.
X-Goog-FieldMask: routes.distanceMeters,routes.duration
Panggilan REST ke computeRouteMatrix
Untuk metode computeRouteMatrix
REST yang digunakan untuk menghitung matriks rute, di header, tentukan untuk menampilkan
originIndex
, destinationIndex
, dan duration
untuk setiap kombinasi asal
dan tujuan:
X-Goog-FieldMask: originIndex,destinationIndex,duration
Panggilan gRPC
Untuk gRPC, tetapkan variabel yang berisi mask kolom respons. Kemudian, Anda dapat meneruskan variabel tersebut ke permintaan.
const ( fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
Pertimbangan jalur kolom
Hanya sertakan kolom yang Anda perlukan dalam respons untuk menampilkan kolom yang Anda perlukan:
- Mengurangi waktu pemrosesan, sehingga hasil Anda ditampilkan dengan latensi yang lebih rendah.
- Memastikan performa latensi stabil. Jika memilih semua kolom, atau jika memilih semua kolom di tingkat teratas, Anda mungkin mengalami penurunan performa saat kolom baru ditambahkan, lalu otomatis disertakan dalam respons Anda.
- Menghasilkan ukuran respons yang lebih kecil, yang berarti throughput jaringan yang lebih tinggi.
- Memastikan Anda tidak meminta data yang tidak diperlukan, yang membantu menghindari waktu pemrosesan dan tagihan yang tidak perlu.
Untuk mengetahui detail selengkapnya tentang cara membuat mask kolom, lihat field_mask.proto.
Meminta token rute
Untuk meminta Routes API menampilkan token rute untuk rute yang dihasilkan, ikuti langkah-langkah berikut:
- Tetapkan parameter berikut yang diperlukan untuk menampilkan token rute:
- Tetapkan
travelMode
keDRIVE
. - Tetapkan
routingPreference
keTRAFFIC_AWARE
atauTRAFFIC_AWARE_OPTIMAL
.
- Tetapkan
- Pastikan tidak ada titik jalan rute yang merupakan titik jalan
via
. - Tentukan mask kolom
routes.routeToken
untuk menampilkan token rute:X-Goog-FieldMask: routes.routeToken
Anda dapat menggunakan token rute untuk rute yang direncanakan di Navigation SDK. Untuk mengetahui detail selengkapnya, lihat Merencanakan rute (Android) atau Merencanakan rute (iOS).
Contoh token rute
Berikut adalah contoh isi permintaan cURL untuk satu rute asal tunggal, yang menggunakan mask kolom untuk meminta token rute, beserta durasi rute, jarak, dan polyline rute:
curl -X POST -d {"origin":{ "location": { "latLng":{ "latitude": -37.8167, "longitude": 144.9619 } } }, "destination":{ "location": { "latLng":{ "latitude":-37.8155, "longitude": 144.9663 } } }, "routingPreference":"TRAFFIC_AWARE", "travelMode":"DRIVE" } -H 'X-Goog-Api-Key: YOUR_API_KEY' \ -H X-Goog-FieldMask: routes.routeToken,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline 'https://routes.googleapis.com/directions/v2:computeRoutes'
Untuk mengetahui detail selengkapnya, lihat referensi Compute Routes API.