Roads API menampilkan batas kecepatan untuk segmen jalan tertentu. Dalam hal segmen jalan dengan batas kecepatan variabel, batas kecepatan maksimum untuk mobil di segmen tersebut akan ditampilkan.
Akurasi data batas kecepatan yang ditampilkan oleh Roads API tidak dapat dijamin. Data batas kecepatan yang diberikan tidak bersifat real-time, dan mungkin merupakan perkiraan, tidak akurat, tidak lengkap, atau sudah tidak berlaku. Lihat detail cakupan untuk melihat wilayah tempat data batas kecepatan tersedia.
Permintaan
Kirim permintaan batas kecepatan menggunakan HTTPS, dalam format berikut:
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEYPenggunaan parameter
Parameter yang diperlukan
Parameter
pathatauplaceId.path— Daftar hingga 100 pasangan lintang/bujur yang mewakili jalur. Nilai lintang dan bujur harus dipisahkan dengan koma. Pasangan lintang/bujur harus dipisahkan dengan karakter pipa: "|". Saat Anda memberikan parameterpath, API akan terlebih dahulu menyesuaikan jalur ke jalan yang paling mungkin dilalui kendaraan (seperti yang dilakukan untuk permintaansnapToRoads), lalu menentukan batas kecepatan untuk segmen jalan yang relevan. Jika Anda tidak ingin API menyesuaikan rute, Anda harus meneruskan parameterplaceIdseperti yang dijelaskan di bawah. Contoh berikut menunjukkan parameterpathdengan 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 merujuk ke segmen jalan, bukan jenis tempat lain. Anda dapat meneruskan hingga 100 ID tempat dengan setiap permintaan. Responsnya mencakup batas kecepatan untuk setiap ID tempat dalam permintaan.API tidak melakukan penyesuaian ke jalan pada ID tempat yang diberikan. Anda dapat mengirim permintaan
snapToRoadsataunearestRoadsuntuk menemukan ID tempat yang relevan, lalu memberikannya sebagai input ke permintaanspeedLimits. Contoh berikut menunjukkan parameterplaceIddengan dua ID tempat:placeId=ChIJs5ydyTiuEmsR0fRSlU0C7k0&placeId=ChIJW__r4ERXzpQRgkeRL6P0m3Y
key— Kunci API aplikasi Anda. Aplikasi Anda harus mengidentifikasi dirinya 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 jam. Ini dapat ditetapkan keKPHatauMPH. 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 yang ditampilkan oleh Roads API akan sesuai dengan segmen jalan.speedLimit— Batas kecepatan untuk segmen jalan tersebut.units— MenampilkanKPHatauMPH.
snappedPoints— array titik yang dipaskan. Array ini hanya ada jika permintaan berisi parameterpath. Setiap titik terdiri atas kolom berikut:location— berisi nilailatitudedanlongitude.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 denganoriginalIndexdari4akan menjadi nilai snap dari lintang/bujur ke-5 yang diteruskan ke parameterpath.placeId— ID unik untuk tempat. Semua ID tempat yang ditampilkan oleh Roads API akan sesuai dengan segmen jalan.placeIddapat 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 terdekat dengan pasangan lintang/bujur yang ditentukan di 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_KEYRespons
{
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 arbitrer,
Anda harus memanggil speedLimits dengan ID tempat yang diambil dari
endpoint nearestRoads.
Contoh permintaan menggunakan ID tempat
Daripada menggunakan pasangan lintang/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 akan menampilkan batas kecepatan untuk segmen jalan yang diwakili oleh setiap ID tempat. API tidak menerapkan penempatan ke jalan pada 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_KEYRespons
{
"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 sampel lokasi aset Anda pada interval 5 hingga 15 menit (nilai tepatnya bergantung pada kecepatan gerak aset). Jika aset diam, satu sampel lokasi sudah cukup (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 dari tidak adanya speedLimits adalah meminta batas kecepatan
tempat yang bukan merupakan segmen jalan.
Contoh di atas menggunakan jembatan Vasco da Gama untuk mengilustrasikan konsep;
jembatan ini 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 tertentu. Selain itu, jika tidak ada ID tempat yang ditujukan 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 lain. ID tempat untuk setiap segmen jalan paling baik diambil menggunakan permintaan snapToRoads atau nearestRoads, yang salah satunya dapat menampilkan beberapa ID tempat dari satu panggilan.
Bagaimana jika segmen jalan menampilkan batas kecepatan yang berbeda untuk mobil dan truk?
Roads API menampilkan batas kecepatan maksimum yang diposting hanya untuk mobil.