Preferensi lalu lintas yang Anda pilih menyeimbangkan akurasi detail rute dengan performa permintaan. Saat membuat permintaan, Anda ingin mempertimbangkan apakah lebih baik menampilkan hasil yang seakurat mungkin, atau menampilkan hasil secepat mungkin. Routes API menyediakan opsi yang memungkinkan Anda mengontrol kualitas data respons vs latensi respons.
Menetapkan tingkat data traffic
Routes API menyediakan RoutingPreference (REST) dan RoutingPreference (gRPC) yang memungkinkan Anda menentukan preferensi pemilihan rute untuk menghitung rute. Preferensi ini berbeda dalam hal memperhitungkan kondisi traffic ke dalam penghitungan rute. Setiap preferensi pemilihan rute memberikan hasil yang berbeda pada tingkat tertentu dalam hal kualitas rute, perkiraan PWT, dan latensi respons.
Kondisi lalu lintas merupakan karakteristik laju arus lalu lintas. Contoh:
- Jika tidak ada kemacetan, kondisi lalu lintas dianggap normal, dan lalu lintas berjalan dengan kecepatan normal tanpa hambatan.
- Mendekati jam sibuk, kepadatan lalu lintas meningkat, yang menyebabkan lalu lintas melambat, menghasilkan kondisi lalu lintas ringan hingga sedang.
- Pada traffic bumper ke bumper, laju aliran akan berhenti, sehingga menghasilkan kondisi lalu lintas yang padat.
Traffic tidak peka
Jika Anda menetapkan preferensi pemilihan rute TRAFFIC_UNAWARE
, rute akan dihitung tanpa memperhitungkan kondisi lalu lintas saat ini. Preferensi pemilihan rute ini
memberikan latensi respons terendah (respons ditampilkan paling cepat).
TRAFFIC_UNAWARE
adalah setelan default.
Dalam responsnya:
PWT terdapat dalam properti respons
duration
.Properti respons
duration
danstaticDuration
berisi nilai yang sama.
Gunakan preferensi pemilihan rute ini jika Anda ingin respons ditampilkan paling cepat, dan perkiraan detail pemilihan rute sudah cukup baik.
Laporan lalu lintas
Saat Anda menetapkan preferensi pemilihan rute TRAFFIC_AWARE
, rute akan dihitung dengan memperhitungkan kondisi lalu lintas saat ini. Hasilnya, detail rute dan rute
mencerminkan kondisi dunia nyata secara lebih akurat. Karena peningkatan
kualitas data ini mengorbankan latensi respons, pengoptimalan performa
diterapkan untuk mengurangi sebagian besar latensi.
Dalam responsnya:
PWT yang mempertimbangkan traffic real-time dimuat dalam properti respons
duration
.Properti respons
staticDuration
berisi durasi perjalanan melalui rute tanpa mempertimbangkan kondisi lalu lintas.
Gunakan preferensi pemilihan rute ini jika Anda menginginkan detail pemilihan rute yang lebih akurat daripada
TRAFFIC_UNAWARE
, tetapi Anda tidak keberatan jika respons ditampilkan dengan
peningkatan latensi yang sedang.
Optimalisasi traffic sadar
Saat Anda menetapkan preferensi pemilihan rute TRAFFIC_AWARE_OPTIMAL
, rute akan dihitung dengan memperhitungkan kondisi traffic saat ini, tetapi tidak ada pengoptimalan performa yang diterapkan. Dalam mode ini, server melakukan penelusuran
jaringan jalan yang lebih menyeluruh untuk menemukan rute yang optimal.
Preferensi pemilihan rute TRAFFIC_AWARE_OPTIMAL
setara dengan mode yang digunakan oleh maps.google.com dan aplikasi seluler Google Maps.
Saat menggunakan opsi ini dengan Compute Route Matrix, jumlah elemen dalam permintaan (jumlah asal × jumlah tujuan) tidak boleh melebihi 100. Untuk mengetahui informasi selengkapnya tentang batas Compute Route Matrix, lihat Menghitung matriks rute.
Dalam responsnya:
PWT yang mempertimbangkan traffic real-time dimuat dalam properti respons
duration
.Properti respons
staticDuration
berisi durasi perjalanan melalui rute tanpa mempertimbangkan kondisi lalu lintas.
Preferensi perutean ini memberikan latensi respons tertinggi (yaitu, respons kembali dengan penundaan terlama). Gunakan preferensi pemilihan rute ini jika Anda menginginkan hasil dengan kualitas tertinggi, tanpa memperhatikan waktu yang dibutuhkan untuk respons.
Pengaruh penetapan waktu keberangkatan
Anda juga dapat menggunakan properti departureTime
untuk menetapkan waktu keberangkatan untuk sebuah perjalanan. Jika Anda tidak menetapkan properti departureTime
, waktu default-nya adalah waktu Anda membuat permintaan.
Untuk
TRAFFIC_UNAWARE
, Anda tidak dapat menetapkandepartureTime
karena pilihan rute dan durasi didasarkan pada jaringan jalan raya dan kondisi lalu lintas rata-rata yang tidak tergantung waktu.Untuk
TRAFFIC_AWARE
danTRAFFIC_AWARE_OPTIMAL
, yang mempertimbangkan kondisi lalu lintas live, traffic live menjadi lebih penting jikadepartureTime
semakin dekat ke waktu sekarang. Semakin jauh Anda menetapkan waktu keberangkatan ke masa mendatang, semakin banyak pertimbangan untuk kondisi lalu lintas historis.
Contoh preferensi pemilihan rute setelan
Kode JSON berikut menunjukkan cara menetapkan preferensi pemilihan rute dalam isi entity pesan permintaan.
{ "origin":{ "location":{ "latLng":{ "latitude":37.419734, "longitude":-122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude":37.417670, "longitude":-122.079595 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL" }
Mengonfigurasi kualitas polyline
Routes API memungkinkan Anda meminta informasi tentang kondisi lalu lintas di sepanjang polyline berbasis traffic. Lihat Meminta polyline untuk mengetahui informasi selengkapnya.
Kualitas polyline dapat dijelaskan dalam istilah berikut:
Jumlah titik yang membentuk polyline
Makin banyak titik yang ada, makin halus polyline (terutama di kurva).
Presisi floating point dari titik
Titik ditetapkan sebagai nilai garis lintang dan garis bujur yang direpresentasikan dalam format floating point presisi tunggal. Ini berfungsi dengan baik untuk nilai kecil (yang dapat direpresentasikan secara tepat), tetapi presisi menurun saat nilai meningkat karena error pembulatan floating point.
Metode computeRoutes (REST) dan metode ComputeRoutes (gRPC) mendukung opsi permintaan polylineQuality
untuk mengontrol kualitas polyline.
Contoh setelan kualitas polyline
polylineQuality
menentukan kualitas polyline sebagai HIGH_QUALITY
atau OVERVIEW
(default). Dengan OVERVIEW
, polyline disusun menggunakan sejumlah kecil titik dan memiliki latensi permintaan yang lebih rendah daripada HIGH_QUALITY
.
Misalnya, dalam isi permintaan:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "polylineQuality": "HIGH_QUALITY", "polylineEncoding": "ENCODED_POLYLINE", "departureTime": "2023-10-15T15:01:23.045123456Z", ... }