Memilih informasi yang akan ditampilkan

Saat memanggil metode untuk menghitung rute atau menghitung matriks rute, Anda harus menentukan informasi yang diinginkan dengan menentukan kolom yang ingin ditampilkan dalam respons. Tidak ada daftar default kolom yang ditampilkan. Jika Anda menghilangkan daftar ini, metode tersebut akan menampilkan error.

Anda menentukan daftar kolom dengan membuat mask kolom respons. Kemudian, Anda meneruskan mask kolom respons ke salah satu metode dengan menggunakan parameter URL $fields atau fields, atau menggunakan header HTTP atau gRPC X-Goog-FieldMask.

Penyamaran kolom adalah praktik desain yang baik untuk memastikan Anda tidak meminta data yang tidak diperlukan, yang membantu menghindari waktu pemrosesan yang tidak perlu dan biaya yang ditagih.

Untuk mengetahui 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
    • REST: Menentukan kolom objek Route dalam respons yang akan ditampilkan, yang diawali dengan routes., misalnya, routes.distanceMeters.
    • gRPC: Menentukan kolom objek Route dalam respons yang akan ditampilkan.
  • Menghitung mask kolom matriks rute

Untuk mengetahui informasi selengkapnya tentang cara membuat mask kolom, lihat field_mask.proto.

Menentukan mask kolom yang akan digunakan

Berikut cara menentukan mask kolom yang ingin Anda gunakan:

  1. Minta semua kolom menggunakan mask kolom *.
  2. Lihat hierarki kolom dalam respons, dan tentukan kolom yang Anda inginkan.
  3. 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, di header, Anda menentukan mask kolom untuk menampilkan kolom Route.distanceMeters dan Route.duration dalam respons. Jangan lupa untuk memberi awalan pada 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 diperlukan dalam respons. Menampilkan hanya kolom yang Anda butuhkan:

  • Mengurangi waktu pemrosesan, sehingga hasil Anda ditampilkan dengan latensi yang lebih rendah.
  • Memastikan performa latensi stabil jika API menambahkan lebih banyak kolom respons di masa mendatang, dan kolom baru tersebut memerlukan waktu komputasi tambahan. Jika Anda memilih semua kolom, atau jika memilih semua kolom pada level teratas, Anda mungkin mengalami penurunan performa saat semua kolom baru secara 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 perlu, yang membantu menghindari waktu pemrosesan yang tidak perlu dan biaya yang ditagih.

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:

  1. Tetapkan travel_mode ke DRIVING.
  2. Setel routing_preference ke TRAFFIC_AWARE atau TRAFFIC_AWARE_OPTIMAL.
  3. Pastikan tidak satu pun titik jalan rute Anda yang merupakan via titik jalan.
  4. Tentukan mask kolom token rute:
    -H X-Goog-FieldMask: routes.route_token

Anda dapat menggunakan rute terencana 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 satu tujuan, 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.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.