Batas kecepatan

Roads API menampilkan batas kecepatan yang diposting untuk segmen jalan tertentu. Untuk segmen jalan dengan batas kecepatan bervariasi, batas kecepatan default untuk segmen tersebut akan ditampilkan.

Keakuratan data batas kecepatan yang ditampilkan oleh Roads API tidak dapat dijamin. Data batas kecepatan yang diberikan tidak real time, dan mungkin merupakan perkiraan, tidak akurat, tidak lengkap, dan/atau sudah tidak berlaku. Lihat detail cakupan untuk melihat wilayah tempat data batas kecepatan tersedia.

Permintaan

Permintaan untuk batas kecepatan harus dikirim melalui HTTPS, dan berbentuk berikut:

https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY

Penggunaan parameter

Parameter yang diperlukan

  • Parameter path atau placeId.
    • path — Daftar hingga 100 pasangan garis lintang/bujur yang mewakili jalur. Nilai lintang dan bujur harus dipisahkan dengan tanda koma. Pasangan garis lintang/bujur harus dipisahkan dengan karakter pipa: "|". Saat Anda memberikan parameter path, API terlebih dahulu akan mengambil jalur ke jalan yang paling mungkin dilalui oleh kendaraan (seperti yang berlaku untuk permintaan snapToRoads), lalu menentukan batas kecepatan untuk segmen jalan yang relevan. Jika tidak ingin API mengambil jalur, Anda harus meneruskan parameter placeId seperti yang dijelaskan di bawah. Contoh berikut menunjukkan parameter path 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, bukan jenis tempat yang berbeda. Anda dapat meneruskan hingga 100 ID tempat bersama setiap permintaan. API tidak melakukan snap jalan pada ID tempat yang diberikan. Respons menyertakan batas kecepatan untuk setiap ID tempat dalam permintaan. Anda dapat mengirim permintaan snapToRoads atau nearestRoads untuk menemukan ID tempat yang relevan lalu memberinya sebagai input ke permintaan speedLimits. Contoh berikut menunjukkan parameter placeId dengan dua ID tempat: placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
  • key — Kunci API aplikasi Anda. Aplikasi Anda 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 jam. Kunci ini dapat disetel ke KPH atau MPH. Defaultnya adalah KPH.

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 — Menampilkan KPH atau MPH.
  • snappedPoints — array titik yang diikat. Array ini hanya ada jika permintaan berisi parameter path. Setiap titik terdiri dari kolom berikut:
    • location — berisi nilai latitude dan longitude.
    • 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 dari 0, sehingga titik dengan originalIndex 4 akan menjadi nilai yang diikat dari garis lintang/bujur ke-5 yang diteruskan ke parameter path.
    • placeId — ID unik untuk 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 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 paling dekat dengan pasangan garis 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_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 arbitrer, Anda harus memanggil speedLimits dengan ID tempat yang diambil dari endpoint nearestRoads.

Contoh permintaan yang menggunakan ID tempat

Daripada menggunakan pasangan garis lintang/bujur, Anda dapat meneruskan ID tempat untuk segmen jalan. Sebaiknya dapatkan ID tempat untuk segmen jalan menggunakan permintaan snapToRoads atau nearestRoads. Jika Anda meneruskan ID tempat, API akan menampilkan batas kecepatan untuk segmen jalan yang diwakili oleh setiap ID tempat. 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 pengambilan sampel lokasi aset Anda pada interval 5 hingga 15 menit (nilai persisnya bergantung pada kecepatan perjalanan aset). Jika aset bersifat statis, 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 sebagian/semua batas kecepatan tidak ada?

Penyebab paling umum hilangnya speedLimits adalah meminta batas kecepatan suatu tempat yang bukan merupakan segmen jalan.

Contoh di atas menggunakan jembatan Vasco da Gama untuk menggambarkan 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 pada setiap segmen jalan. Selain itu, jika tidak ada ID tempat yang ditujukan untuk segmen jalan, respons tidak akan berisi batas kecepatan apa pun.

Saat membuat permintaan batas kecepatan menggunakan ID tempat, pastikan setiap ID tempat merujuk ke segmen jalan, bukan jenis tempat yang berbeda. ID tempat untuk setiap segmen jalan sebaiknya diambil menggunakan permintaan snapToRoads atau nearestRoads, yang keduanya dapat menampilkan beberapa ID tempat dari satu panggilan.