Pilih informasi yang akan ditampilkan
Saat memanggil metode untuk menghitung rute atau menghitung matriks rute, Anda harus menentukan informasi yang diinginkan dengan menentukan kolom mana yang ingin ditampilkan dalam respons. Tidak ada daftar default untuk kolom yang ditampilkan. Jika Anda menghapus daftar ini, metode akan menampilkan error.
Anda menentukan daftar kolom dengan membuat mask kolom respons. Kemudian, teruskan
mask kolom respons ke salah satu metode menggunakan parameter URL $fields
atau
fields
, atau dengan menggunakan header HTTP atau gRPC X-Goog-FieldMask
.
Penyamaran kolom adalah praktik desain yang baik untuk memastikan Anda tidak meminta data yang tidak diperlukan. Cara ini akan membantu Anda menghindari waktu pemrosesan yang tidak perlu dan biaya yang ditagih.
Untuk informasi selengkapnya tentang parameter URL, lihat Parameter Sistem.
Menentukan mask kolom respons
Mask kolom respons adalah daftar jalur yang dipisahkan koma, yang setiap jalurnya menentukan kolom unik dalam pesan respons. Jalur tersebut dimulai dari pesan respons tingkat atas dan menggunakan jalur yang dipisahkan titik ke kolom yang ditentukan.
Buat jalur kolom sebagai berikut:
topLevelField[.secondLevelField][.thirdLevelField][...]
- Mask kolom rute komputasi
- Menghitung mask kolom matriks rute
- REST: Menentukan kolom Isi respons yang akan ditampilkan.
- gRPC: Menentukan kolom objek RouteMatrixElement dalam respons yang akan ditampilkan.
Untuk mengetahui informasi selengkapnya tentang cara membuat mask kolom, lihat field_mask.proto.
Menentukan mask kolom yang akan digunakan
Berikut cara menentukan mask kolom mana yang ingin Anda gunakan:
- Minta semua kolom menggunakan mask kolom
*
. - Lihat hierarki kolom dalam respons, dan tentukan kolom yang Anda inginkan.
- Buat mask kolom menggunakan hierarki kolom.
Misalnya, untuk respons parsial dari rute transportasi umum:
"routes": [ { "legs": [ { "distanceMeters": 12886, } ... ]}]
Jika Anda hanya ingin menampilkan kolom distanceMeters
, mask kolom Anda adalah:
routes.legs.distanceMeters
Contoh lain: Untuk menampilkan semuanya di legs
dalam respons, mask kolom Anda adalah:
routes.legs
Menentukan jalur kolom
Bagian ini berisi contoh cara menentukan jalur kolom sebagai bagian dari mask kolom respons.
Panggilan REST ke computeRoutes
Pada contoh pertama, Anda menggunakan panggilan REST ke metode computeRoutes
untuk menghitung rute. Dalam contoh ini, dalam header, Anda menentukan mask kolom untuk menampilkan
kolom Route.distanceMeters
dan Route.duration
dalam respons. Jangan lupa untuk memberikan awalan untuk nama kolom dengan routes
.
-H X-Goog-FieldMask: routes.distanceMeters,routes.duration
Panggilan REST ke computeRouteMatrix
Untuk metode REST computeRouteMatrix
yang digunakan untuk menghitung matriks rute, di header, tentukan untuk menampilkan originIndex
, destinationIndex
, dan duration
untuk setiap kombinasi tempat asal dan tujuan:
-H X-Goog-FieldMask: originIndex,destinationIndex,duration
Panggilan gRPC
Untuk gRPC, tetapkan variabel yang berisi mask kolom respons. Selanjutnya, 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. Hanya menampilkan kolom yang Anda perlukan:
- Mempersingkat waktu pemrosesan, sehingga hasil Anda ditampilkan dengan latensi yang lebih rendah.
- Memastikan performa latensi yang stabil jika API menambahkan lebih banyak kolom respons di masa mendatang, dan kolom baru tersebut memerlukan waktu komputasi tambahan. Jika memilih semua kolom, atau memilih semua kolom di level teratas, Anda mungkin akan mengalami penurunan performa saat semua kolom baru otomatis disertakan dalam respons.
- Menghasilkan ukuran respons yang lebih kecil, yang berarti throughput jaringan yang lebih tinggi.
- Memastikan Anda tidak meminta data yang tidak diperlukan. Cara ini akan membantu Anda menghindari waktu pemrosesan dan biaya yang tidak perlu.
Meminta token rute
Untuk meminta agar Routes API menampilkan token rute untuk rute yang dihasilkan, ikuti persyaratan untuk menampilkan token rute, lalu gunakan mask kolom routes.route_token
untuk meminta token:
- Tetapkan
travel_mode
keDRIVING
. - Setel
routing_preference
keTRAFFIC_AWARE
atauTRAFFIC_AWARE_OPTIMAL
. - Pastikan tidak ada titik jalan rute Anda yang merupakan
via
titik jalan. - Tentukan mask kolom token rute:
-H X-Goog-FieldMask: routes.route_token
Anda dapat menggunakan 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 asal, rute tujuan tunggal, 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.route_token,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline 'https://routes.googleapis.com/directions/v2:computeRoutes'
Untuk mengetahui detail selengkapnya, lihat referensi Compute Routes API.