Roads API menampilkan batas kecepatan yang diposting untuk jalan tertentu segmen data. Untuk ruas jalan dengan batas kecepatan bervariasi, setelan default batas kecepatan untuk segmen tersebut ditampilkan.
Akurasi data batas kecepatan yang ditampilkan oleh Roads API tidak dapat dijamin. Data batas kecepatan yang diberikan tidak real-time, dan mungkin diperkirakan, tidak akurat, tidak lengkap, dan/atau sudah usang. Lihat detail cakupan untuk melihat wilayah tempat data batas kecepatan tersedia.
Permintaan
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 hingga 100 pasangan garis lintang/bujur yang mewakili {i>path<i}. Nilai lintang dan bujur harus dipisahkan dengan tanda koma. Pasangan garis lintang/garis bujur harus dipisahkan dengan karakter pipa: "|". Saat Anda memberikan parameterpath
, API akan terlebih dahulu mengambil jalur ke jalan yang paling mungkin dilalui oleh kendaraan (seperti halnya untuksnapToRoads
), lalu menentukan batas kecepatan untuk segmen jalan yang relevan. Jika Anda tidak ingin API mengambil jalur, Anda harus meneruskan parameterplaceId
seperti yang dijelaskan di bawah. Contoh berikut menampilkan parameterpath
dengan tiga pasangan garis 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 merujuk ke segmen jalan dan bukan jenis yang berbeda suatu tempat. Anda dapat meneruskan hingga 100 ID tempat dengan masing-masing permintaan. API tidak melakukan snap jalan pada ID tempat yang diberikan. Respons menyertakan batas kecepatan untuk setiap ID tempat dalam permintaan. Anda dapat mengirim permintaansnapToRoads
ataunearestRoads
untuk menemukan ID tempat yang relevan lalu memberikannya sebagai input ke permintaanspeedLimits
. Contoh berikut menunjukkan ParameterplaceId
dengan dua ID tempat:placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
— Kunci API aplikasi Anda. Nama aplikasi harus mengidentifikasi dirinya sendiri setiap kali mengirim permintaan ke Roads API dengan menyertakan kunci API bersama setiap permintaan. Pelajari cara mendapatkan kunci.
Parameter opsional
units
— Apakah akan menampilkan batas kecepatan dalam kilometer atau mil per dalam jam kerja lokal mereka. Kunci ini dapat disetel keKPH
atauMPH
. Defaultnya adalahKPH
.
Respons
Elemen berikut mungkin ada dalam respons speedLimits
:
speedLimits
— Array metadata jalan. Setiap elemen terdiri dari kolom berikut:placeId
— ID unik untuk tempat. Semua ID tempat 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 ada hanya 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 diikat dalam respons. Nilai ini diindeks dari0
, sehingga poin denganoriginalIndex
4
akan menjadi nilai yang diikat dari detik lintang/bujur yang diteruskan ke parameterpath
.placeId
— ID unik untuk tempat. Semua ID tempat ditampilkan oleh Roads API akan sesuai dengan segmen jalan.placeId
dapat diteruskan dalam permintaan batas kecepatan untuk menentukan batas kecepatan di sepanjang ruas jalan tersebut.
warning_message
— String yang berisi peringatan yang terlihat oleh pengguna.
Contoh permintaan yang menggunakan jalur
Permintaan ini mendapatkan batas kecepatan untuk setiap segmen jalan yang terdekat dengan pasangan garis lintang/bujur tertentu di jalur yang melintasi Vasco da Gama jembatan 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 ketersebaran titik dalam respons di atas. Jika Anda
meminta batas kecepatan untuk segmen jalan terdekat di titik sembarang,
Anda harus memanggil speedLimits
dengan ID tempat yang diambil dari
Endpoint nearestRoads
sebagai gantinya.
Contoh permintaan yang menggunakan ID tempat
Alih-alih menggunakan pasangan garis lintang/garis bujur, Anda dapat meneruskan ID tempat
segmen jalan. Sebaiknya dapatkan ID tempat untuk segmen jalan menggunakan
Permintaan snapToRoads
atau nearestRoads
. Saat Anda meneruskan ID tempat, API
mengembalikan batas kecepatan untuk segmen jalan yang diwakili oleh setiap ID tempat. Tujuan
API tidak menerapkan snap 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 Batas Kecepatan, sebaiknya mengambil sampel lokasi aset dengan interval 5 hingga 15 menit (yang tepat nilai bergantung pada kecepatan gerak aset). Jika aset tidak bergerak, satu sampel lokasi sudah cukup (tidak perlu 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 sebagian/semua batas kecepatan tidak ada?
Penyebab paling umum speedLimits
tidak ada adalah meminta batas kecepatan
tempat yang bukan merupakan segmen jalan.
Contoh di atas menggunakan jembatan Vasco da Gama untuk menggambarkan konsep;
jembatan mendukung jalan E90 yang melintasi Rio Tejo. Jembatan
itu sendiri memiliki ID tempat
ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Segmen jalan pertama
pada respons di atas adalah bagian dari jalan E90 dan memiliki ID tempat
ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Dalam contoh permintaan, jika Anda mengganti jalan
ID tempat dengan ID tempat jembatan, maka dalam respons hanya akan ada
dua batas kecepatan dalam array speedLimits
karena ID tempat jembatan
tidak mengacu pada segmen jalan individual. Selain itu, jika tidak ada
ID tempat untuk segmen jalan, responsnya tidak akan berisi
batas kecepatan.
Saat membuat permintaan batas kecepatan menggunakan ID tempat, pastikan setiap ID tempat
mengacu pada segmen jalan dan bukan jenis tempat yang berbeda. ID tempat untuk
setiap segmen jalan sebaiknya diambil menggunakan snapToRoads
atau permintaan nearestRoads
, yang keduanya dapat menampilkan beberapa ID tempat dari
untuk satu panggilan.