Roads API menampilkan batas kecepatan yang diposting untuk segmen jalan tertentu. Dalam kasus segmen jalan dengan batas kecepatan variabel, batas kecepatan default untuk segmen akan ditampilkan.
Akurasi data batas kecepatan yang ditampilkan oleh Roads API tidak dapat dijamin. Data batas kecepatan yang diberikan tidak bersifat real-time, dan dapat berupa perkiraan, tidak akurat, tidak lengkap, dan/atau sudah tidak berlaku lagi. Lihat detail cakupan untuk mengetahui wilayah tempat data batas kecepatan tersedia.
Requests
Permintaan untuk batas kecepatan harus dikirim melalui HTTPS, dan berbentuk seperti berikut:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY
Penggunaan parameter
Parameter yang diperlukan
- Parameter
path
atauplaceId
.path
— Daftar yang berisi hingga 100 pasangan garis lintang/bujur yang mewakili jalur. Nilai lintang dan bujur harus dipisahkan dengan koma. Pasangan garis lintang/bujur harus dipisahkan dengan karakter pipa: "|". Saat Anda memberikan parameterpath
, API akan terlebih dahulu memasang jalur ke jalan yang paling mungkin dilalui oleh kendaraan (seperti untuk permintaansnapToRoads
), lalu menentukan batas kecepatan untuk segmen jalan yang relevan. Jika tidak ingin API mengambil jalur, Anda harus meneruskan parameterplaceId
seperti yang dijelaskan di bawah. Contoh berikut menunjukkan parameterpath
dengan tiga pasangan lintang/bujur:path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796
.placeId
— ID tempat yang mewakili satu atau beberapa segmen jalan. Pastikan setiap ID tempat mengacu pada segmen jalan, bukan jenis tempat yang berbeda. Anda dapat meneruskan hingga 100 ID tempat dengan setiap permintaan. API tidak melakukan snap-road pada ID tempat yang disediakan. Respons mencakup batas kecepatan untuk setiap ID tempat dalam permintaan. Anda dapat mengirim permintaansnapToRoads
ataunearestRoads
untuk menemukan ID tempat yang relevan, lalu memberinya sebagai input ke permintaanspeedLimits
. Contoh berikut menunjukkan parameterplaceId
dengan dua ID tempat:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
— Kunci API aplikasi Anda. Aplikasi Anda harus mengidentifikasi diri setiap kali mengirim permintaan ke Roads API dengan menyertakan kunci API pada setiap permintaan. Pelajari cara mendapatkan kunci.
Parameter opsional
units
— Apakah akan menampilkan batas kecepatan dalam kilometer atau mil per jam. Ini dapat disetel keKPH
atauMPH
. Default-nya adalahKPH
.
Respons
Elemen berikut mungkin ada dalam respons speedLimits
:
speedLimits
— Array metadata jalan. Setiap elemen terdiri dari kolom berikut:placeId
— ID unik untuk suatu tempat. Semua ID tempat yang ditampilkan oleh Roads API akan sesuai dengan segmen jalan.speedLimit
— Batas kecepatan untuk segmen jalan tersebut.units
— MenampilkanKPH
atauMPH
.
snappedPoints
— array titik yang diikat. Array ini hanya ada jika permintaan berisi parameterpath
. Setiap titik terdiri dari kolom berikut:location
— berisi nilailatitude
danlongitude
.originalIndex
— Bilangan bulat yang menunjukkan nilai yang sesuai dalam permintaan asli. Setiap nilai dalam permintaan harus dipetakan ke nilai yang dipaskan dalam respons. Nilai ini diindeks dari0
, sehingga titik denganoriginalIndex
4
akan menjadi nilai yang diikat dari garis lintang/bujur ke-5 yang diteruskan ke parameterpath
.placeId
— ID unik untuk suatu tempat. Semua ID tempat yang ditampilkan oleh Roads API akan sesuai dengan segmen jalan.placeId
dapat diteruskan dalam permintaan batas kecepatan untuk menentukan batas kecepatan di sepanjang segmen jalan tersebut.
warning_message
— String yang berisi peringatan yang terlihat oleh pengguna.
Contoh permintaan menggunakan jalur
Permintaan ini mendapatkan batas kecepatan untuk setiap segmen jalan yang paling dekat dengan pasangan lintang/bujur yang ditentukan dalam jalur yang melintasi jembatan Vasco da Gama di Lisbon, Portugal.
Permintaan
https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY
Respons
{ speedLimits: [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ], snappedPoints: [ { location: { latitude: 38.75807927603043, longitude: -9.037417546438084 }, originalIndex: 0, placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE" }, { location: { latitude: 38.689653701836896, longitude: -9.177051486847693 }, originalIndex: 1, placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU" }, { location: { latitude: 41.13993011767777, longitude: -8.609400794783655 }, originalIndex: 2, placeId: "ChIJJ4vQRudkJA0RpednU70A-5M" } ], warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation." }
Perhatikan pesan peringatan untuk ketidaksesuaian titik dalam respons di atas. Jika meminta batas kecepatan untuk segmen jalan terdekat di titik arbitrer, Anda harus memanggil speedLimits
dengan ID tempat yang diambil dari endpoint nearestRoads
.
Contoh permintaan menggunakan ID tempat
Daripada menggunakan pasangan garis lintang/bujur, Anda dapat meneruskan ID tempat dari segmen jalan. Sebaiknya Anda mendapatkan ID tempat untuk segmen jalan menggunakan
permintaan snapToRoads
atau nearestRoads
. Saat Anda meneruskan ID tempat, API akan menampilkan batas kecepatan untuk segmen jalan yang diwakili oleh setiap ID tempat. API ini tidak menerapkan snapping jalan ke ID tempat yang diberikan.
Contoh berikut meminta batas kecepatan untuk beberapa segmen jalan yang melintasi jembatan Vasco da Gama di Lisbon, Portugal.
Permintaan
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY
Respons
{ "speedLimits": [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ] }
Rekomendasi penggunaan
Untuk meminimalkan volume panggilan ke layanan Speed Limits, sebaiknya ambil lokasi lokasi aset Anda pada interval 5 hingga 15 menit (nilai persisnya bergantung pada kecepatan pengiriman aset). Jika aset tidak bergerak, satu sampel lokasi sudah memadai (tidak perlu melakukan beberapa panggilan).
Untuk meminimalkan keseluruhan latensi, sebaiknya panggil layanan Batas Kecepatan setelah mengumpulkan beberapa data, daripada memanggil API setiap kali lokasi aset seluler diterima.
Mengapa beberapa/semua batas kecepatan tidak ada?
Penyebab paling umum speedLimits
tidak ada adalah batas kecepatan
tempat yang bukan segmen jalan.
Contoh di atas menggunakan jembatan Vasco da Gama untuk mengilustrasikan konsep; jembatan tersebut mendukung jalan E90 yang melintasi Rio Tejo. Jembatan itu sendiri memiliki ID tempat ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Segmen jalan pertama
dalam respons di atas adalah bagian dari jalan E90 dan memiliki ID tempat
ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Dalam contoh permintaan, jika Anda mengganti ID tempat jalan dengan ID tempat jembatan, maka dalam respons hanya akan ada dua batas kecepatan dalam array speedLimits
karena ID tempat jembatan tidak merujuk ke segmen jalan individual. Selain itu, jika tidak ada ID tempat untuk segmen jalan, respons tidak akan berisi batas kecepatan.
Saat membuat permintaan batas kecepatan menggunakan ID tempat, pastikan setiap ID tempat merujuk ke segmen jalan, bukan jenis tempat yang berbeda. ID tempat untuk
segmen jalan individual paling baik diambil menggunakan permintaan snapToRoads
atau nearestRoads
, yang keduanya dapat menampilkan beberapa ID tempat dari
satu panggilan.